En primer lugar, sé que es un duplicado, pero ninguna de las respuestas anteriores fue útil.
Estoy buscando en las publicaciones a través post_meta
. Aquí está mi código, que actualmente no devuelve nada.
$args = array(
'numberposts' => -1,
'post_type' => 'post',
'meta_query' => array(
array(
'key' => 'system_power_supply',
'value' => array('single', 'redundant'),
'compare' => 'IN',
)
)
);
$query = new WP_Query($args);
echo $query->found_posts;
Si lo elimino meta_query
funciona. Estoy seguro de estas cosas:
- No hay error de ortografía en el
key
o elvalue
. - tipo de publicación es
post
- No es un puesto con el valor 'single' en 'system_power_supply'. Sin embargo, los campos de publicación se generan mediante campos personalizados avanzados .
wp-query
meta-query
Rizwan
fuente
fuente
system_power_supply
serializado?a:1:{i:0;s:6:"single";}
Respuestas:
No hay una manera fácil de buscar valores serializados en una meta consulta. Si la lista de valores no es larga, posiblemente podría configurar múltiples metaconsultas:
O si quisiera ser súper elegante, podría configurarlo dinámicamente:
fuente
Sé que ha pasado mucho tiempo, pero por si acaso alguien tiene el mismo problema. Bueno, he estado tirando de mi cabello durante horas antes de encontrar el problema: 'meta_query' con el operador de comparación 'IN' no parece aceptar la matriz habitual. en su lugar, debe unirlo primero con ','.
Entonces, en su caso, algo como esto debería funcionar:
fuente
IN()
parte. Por ejemplo, se'this that', 'and', 'that'
convierte'this','that','and','that'
, por lo que parece ser mejor simplemente darle la matriz.