Because We Love Happy Coding

フリーライターからエンジニア × 講師。発信力だけあり余ってる感じ

AdvancedCustomFieldsのbooleanの値で`wp_query`をソートしようとしたら詰まった

今日もまたコーディング。だって僕らはHappy Codingが大好きだから。

目次

環境

手順など

AdvancedCustomFields(以下ACF)のbooleanの値でwp_queryをソートしようとしたら詰まった。

true/falseのカスタムフィールドで並べ替えして記事を出すのはほぼ無理っぽい。

要因は3つ。

  • wp_queryは、meta_keyで指定したもので絞り込みをする挙動になっている。基本的に、並べ替えに使うmeta_keyは、全部の記事に値がそろっているもの、という想定らしい。値がない記事(falseも含む)はクエリから外される。
  • wp_querynullfalseを区別する確実な方法は、あるとしてもたいそう面倒臭い。
  • 悪いことに、booleanのカスタムフィールドはnull とfalseを区別して入力する方法がない。

解決としては、booleanを使うのを諦めて、selectで処理することだ。

参考記事