【WordPress】カスタムフィールドでの投稿の絞り込みについて【meta_query】

【Wordpress】カスタムフィールドでの投稿の絞り込みについて

カスタムフィールドの設定値から投稿を絞り込むには、次の関数を使用します。

WP_Query()

この関数は条件を指定すると投稿を絞り込んでくれます。
()の中にはさまざまな条件を指定することができ、色々な検索に対応しています。

その条件の一つに、meta_queryというものがあります。
metaはカスタムフィールドの情報を指します。

つまり、カスタムフィールドの値で投稿を絞り込んでくれるということですね。

このmeta_queryはその中にさらに配列を持つことが出来ます。
配列ではどのカスタムフィールドと比較するか、値はどれか、どのように比較するか、などがあります。

例えば、例を出すと次のような形です。

上の構文はカスタムフィールド「info_example」の値が変数「$example」と同じである投稿のデータが表示されます。
「info_example」は事前に作成しておく必要がありますね。

かなり簡単に投稿の絞り込みができるので、Wordpressは便利ですね。
以下にリファレンスもあるので、参考にしてみてください。

関数リファレンス/WP Query

比較をする場合は要注意!

等しい条件を探すのは簡単なんですが、例えば「値以上」とか「値よりも小さい」といった場合には注意が必要です。

そもそも、カスタムフィールドに登録される値は型が文字列になるんですよね

管理画面での入力欄を<input type=”number”>にしても文字列型として登録されるので、仕方ない問題です。

さて、先ほどの例だと変数exampleを数値型にするのは簡単です。
ですが元々文字列で入っているinfo_exampleはどうしましょう?

文字列なので90という数字が入っていても、数値の比較はできなくなってしまいます。
実は、meta_queryには比較する際にカスタムフィールドの値を数値にしてくれるオプションが存在します。

それが「‘type’=>’NUMERIC’」です。

これを指定することで、数値として大小関係を比較してくれます。
例えば、info_exampleの値が70以上の記事は以下で絞り込めます。

最後にtypeを追加すると覚えておきましょう。