WordPress の記事をカスタムフィールドの値で並び替える

  • WordPress

とあるカスタムフィールドの値を元にして、投稿を並び替える方法です。下記は投稿タイプ「post」の例。

$my_posts = get_posts([
  'post_type' => 'post',
  'meta_key' => 'metaキー',
  'order_by' => 'meta_value',
  'order' => 'ASC',
]);

ただこの比較は文字列比較となるので、カスタムフィールドに数値が入っている場合はうまく動作しません。

数値で比較

数値で比較するときは、orderbymeta_value_num にしてあげます。

$my_posts = get_posts([
  'post_type' => 'post',
  'meta_key' => 'metaキー',
  'order_by' => 'meta_value_num',
  'order' => 'ASC',
]);