株式会社オートプロジェクト

Columnコラム
  • TOP
  • コラム一覧
  • WordPress|Meta Keyがなくてもカスタムフィールドの値でソートさせる方法
2023年1月13日
WordPress|Meta Keyがなくてもカスタムフィールドの値でソートさせる方法

WordPressでカスタムフィールドでソートしたい場合、下記の方法が一般的です。

$args = array(
'post_type' => 'post',
'meta_key' => 'メタキー',
'orderby' => 'meta_value_num',
'order' => 'DESC'
);

ただ、この方法だと過去記事に meta_key が存在しないため、過去記事が表示されなくなってしまいます。

そこで、meta_query を使い表示させる方法をとります。

それがこのコードです。

$args = array(
 'post_type' => 'post',
 'orderby' => 'メタキー',
 'order' => 'desc', 
 'meta_query' => array(
 array(
  'key' => 'メタキー',
  'compare' => 'NOT EXISTS'
  ),
  array(
  'key' => 'メタキー',
  'compare' => 1
  ),
  'relation'=>'OR',
 ),
);

ポイントは compare に NOT EXISTS を使い、キーが存在するものとしないものをORでくっつけることですね。