【Wordpress】カスタムフィールドでの投稿の絞り込みについて
カスタムフィールドの設定値から投稿を絞り込むには、次の関数を使用します。
この関数は条件を指定すると投稿を絞り込んでくれます。
()の中にはさまざまな条件を指定することができ、色々な検索に対応しています。
その条件の一つに、meta_queryというものがあります。
metaはカスタムフィールドの情報を指します。
つまり、カスタムフィールドの値で投稿を絞り込んでくれるということですね。
このmeta_queryはその中にさらに配列を持つことが出来ます。
配列ではどのカスタムフィールドと比較するか、値はどれか、どのように比較するか、などがあります。
例えば、例を出すと次のような形です。
1 2 3 4 5 |
'meta_query' => array( 'key' => 'info_example', 'value' => $example, 'compare' => '==' ) |
上の構文はカスタムフィールド「info_example」の値が変数「$example」と同じである投稿のデータが表示されます。
「info_example」は事前に作成しておく必要がありますね。
かなり簡単に投稿の絞り込みができるので、Wordpressは便利ですね。
以下にリファレンスもあるので、参考にしてみてください。
等しい条件を探すのは簡単なんですが、例えば「値以上」とか「値よりも小さい」といった場合には注意が必要です。
管理画面での入力欄を<input type=”number”>にしても文字列型として登録されるので、仕方ない問題です。
さて、先ほどの例だと変数exampleを数値型にするのは簡単です。
ですが元々文字列で入っているinfo_exampleはどうしましょう?
文字列なので90という数字が入っていても、数値の比較はできなくなってしまいます。
実は、meta_queryには比較する際にカスタムフィールドの値を数値にしてくれるオプションが存在します。
これを指定することで、数値として大小関係を比較してくれます。
例えば、info_exampleの値が70以上の記事は以下で絞り込めます。
1 2 3 4 5 6 |
'meta_query' => array( 'key'=>'info_example', 'value'=>70, 'compare'=>'>=', 'type'=>'NUMERIC' ) |
最後にtypeを追加すると覚えておきましょう。