Tout d'abord, je sais que c'est un doublon, mais aucune des réponses plus anciennes n'était utile.
Je cherche dans les articles post_meta
. Voici mon code, qui ne renvoie actuellement rien.
$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 je supprime meta_query
cela fonctionne. Je suis sûr de ces choses:
- Il n'y a aucune faute d'orthographe dans le
key
ou levalue
. - le type de message est
post
- Il y a un article avec la valeur 'single' dans 'system_power_supply'. Cependant, les champs de publication sont générés par des champs personnalisés avancés .
wp-query
meta-query
Rizwan
la source
la source
system_power_supply
sérialisé?a:1:{i:0;s:6:"single";}
Réponses:
Il n'y a pas de moyen simple de rechercher des valeurs sérialisées dans une méta-requête. Si la liste de valeurs n'est pas longue, vous pouvez potentiellement configurer plusieurs méta-requêtes:
Ou si vous vouliez devenir super chic, vous pouvez le configurer dynamiquement:
la source
Je sais que ça fait longtemps, mais juste au cas où quelqu'un aurait le même problème. Eh bien, j'ai tiré mes cheveux pendant des heures avant de trouver le problème: 'meta_query' avec l'opérateur de comparaison 'IN' ne semble pas accepter le tableau habituel. à la place, vous devez d'abord le joindre avec ','.
Donc, dans votre cas, quelque chose comme ça devrait fonctionner:
la source
IN()
pièce. Par exemple,'this that', 'and', 'that'
devient'this','that','and','that'
- il semble donc préférable de simplement lui donner le tableau.