Les premiers travaux sur ce que vous attendez:
= equals
!= does not equal
> greater than
>= greater than or equal to
< less than
<= less than or equal to
LIKE
et NOT LIKE
sont des opérateurs SQL qui vous permettent d'ajouter des symboles génériques, vous pouvez donc avoir une méta-requête qui ressemble à ceci:
array(
'key' => 'name',
'value' => 'Pat',
'compare' => 'LIKE'
)
Cela renverrait toutes les publications où la méta valeur "name" a la chaîne "Pat". Dans ce cas, "Pat" "Patricia" et "Patrick" vous seraient tous renvoyés. Il y a une explication de tutoriel non-WordPress ici .
L'ajout du caractère générique %
n'est pas nécessaire, car il est ajouté par défaut, comme @Herb a déclaré dans sa réponse ci-dessous . Comme ceci: $meta_value = '%' . like_escape( $meta_value ) . '%';
- voir la source .
IN
et NOT IN
sélectionnez toutes les correspondances qui sont dans (ou pas dans) le tableau donné. Donc, vous pourriez faire quelque chose comme ça:
array(
'key' => 'color',
'value' => array('red', 'green', 'blue')
'compare' => 'IN'
)
et tous les articles dont la couleur est définie sur le rouge, le vert ou le bleu sont affichés. L'utilisation de 'NOT IN' obtient l'inverse, toute publication dont la valeur est définie sur autre chose que ce qui est dans le tableau.
Le SQL généré pour cela ressemblerait à ceci:
SELECT * FROM posts_meta WHERE value IN ("red", "green", "blue")
BETWEEN
et NOT BETWEEN
vous permettent de définir une plage de valeurs qui pourrait être correcte, et vous obliger à donner deux valeurs dans un tableau dans votre meta_query:
array(
'key' => 'price',
'value' => array(20,30)
'compare' => 'BETWEEN'
)
Cela vous donnera tous les messages dont le prix est compris entre 20 et 30. Cette personne creuse dans un exemple avec des dates.
NOT EXISTS
est juste comme ce que ça sonne - la méta-valeur n'est pas définie ou est définie sur une valeur nulle. Tout ce dont vous avez besoin pour cette requête est la clé et l'opérateur de comparaison:
array(
'key' => 'price',
'compare' => 'NOT EXISTS'
)
Cette personne avait besoin d'interroger des méta-valeurs inexistantes et avait besoin qu'elles jouent bien avec les autres.
J'espère que cela t'aides!
meta_query
array, vos clés ne doivent pas être préfixées avecmeta_
. Si vous utilisez$query->meta_key
,$query->meta_value
etc., ils devraient toujours conserver le préfixe.Notez que lorsque vous utilisez une valeur meta_compare de 'LIKE', WordPress enveloppe automatiquement le caractère générique (%) autour de la chaîne meta_value. Ainsi, l'exemple 'Pat%' pourrait ne pas renvoyer de résultats.
la source
%
?