WordPressでカスタムフィールドkeyの設定されていない記事を絞り込む時の注意点

WordPress

途中からカスタムフィールドを追加すると、それまでに書いた記事には、カスタムフィールドのkeyが存在しないため、meta_queryを指定してしまうと記事が取得できなくなってしまいます。

'meta_query' => array(
    array(
        'key' => 'display_on',
        'value' => 1,
        'compare' => '!='
    )
)

この value値をnullなどにしてもそもそもkeyがないので、意味がありません。

過去記事が数件であれば、1件ずつ保存していけばいいのですが、何百記事となるとそんなこと出来ません!!

そういった場合には、検索条件に ‘compare’ => ‘NOT EXISTS’ を追加することでkeyがない記事についても表示することが出来ます。

'meta_query' => array(
    'relation' => 'OR',
    array(
        'key' => 'display_on',
        'compare' => 'NOT EXISTS'
    ),
    array(
        'key' => 'display_on',
        'value' => 1,
        'compare' => '!='
    )
)

参考サイト

Querying posts with a false or NULL meta value

コメント

スポンサーリンク
タイトルとURLをコピーしました