web-dev-qa-db-fra.com

En utilisant OR dans WP_Query nie la comparaison "NOT EXISTS"

J'essaie de filtrer les publications selon un champ personnalisé qui est égal à "nouveau" ou qui n'a pas encore été défini. Je suis capable d’obtenir l’une ou l’autre de ces méta-répliques, mais lorsque je les utilise dans une requête "OU", la partie "NOT EXISTS" est ignorée et la requête renvoie chaque publication pour laquelle TOUTE valeur a été définie. exemple de 'meta_query' qui provoque le comportement étrange:

array(
  'relation' => 'OR',
  array(
    'key' => 'status',
    'compare' => 'NOT EXISTS',
  ),
  array(
    'key' => 'status',
    'value' => 'new',
    'compare' => '=',
  ),
);
2
hereswhatidid
array(
  'relation' => 'OR',
  array(
    'key' => 'status',
    'value' => '', //<--- not required but necessary in this case
    'compare' => 'NOT EXISTS',
  ),
  array(
    'key' => 'status',
    'value' => 'new',
    'compare' => '=',
  ),
);

Ça devrait le faire.

5
N. F.