Primeiro de tudo, eu sei que é uma duplicata, mas nenhuma das respostas mais antigas foi útil.
Estou pesquisando nas postagens post_meta
. Aqui está o meu código, que atualmente não retorna 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;
Se eu removê- meta_query
lo, funciona. Eu tenho certeza destas coisas:
- Não há erro ortográfico no
key
ou novalue
. - o tipo de postagem é
post
- Não é um post com o valor 'single' em 'system_power_supply'. No entanto, os campos de postagem são gerados pelos campos personalizados avançados .
wp-query
meta-query
Rizwan
fonte
fonte
system_power_supply
serializado?a:1:{i:0;s:6:"single";}
Respostas:
Não há uma maneira fácil de pesquisar valores serializados em uma meta consulta. Se a lista de valores não for muito longa, é possível que você possa configurar várias meta consultas:
Ou, se você quiser ser super sofisticado, poderá configurá-lo dinamicamente:
fonte
Sei que já faz muito tempo, mas no caso de alguém ter o mesmo problema. Bem, eu tenho puxado meu cabelo por horas antes de encontrar o problema: 'meta_query' com o operador de comparação 'IN' parece não aceitar a matriz usual. em vez disso, você precisa associá-lo primeiro a ','.
Portanto, no seu caso, algo assim deve funcionar:
fonte
IN()
peça. Por exemplo,'this that', 'and', 'that'
torna'this','that','and','that'
- se - então parece ser melhor fornecer apenas a matriz.