web-dev-qa-db-ja.com

を使う OR WP_Queryで "NOT EXISTS"比較を否定する

'new'と等しいか、まだ設定されていないカスタムフィールドで投稿をフィルタしようとしています。私はそれらのmeta_queriesのどちらかを独自に動作させることができますが、 'OR'クエリでそれらを使用すると、 'NOT EXISTS "部分は無視され、クエリはANY値が設定されたすべての投稿を返します。奇妙な振る舞いを引き起こしているサンプル 'meta_query':

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' => '=',
  ),
);

それはそれをするべきです。

5
N. F.