カスタムフィールド検索機能自作で困っています。
-
カスタムフィールドのキー名、その値、そしてカスタムフィールド数の制限なしで、カスタムフィールドを対象にした検索機能を作成しています。
検索ボタンを押したらパラメータ付きのURLとなり、そのパラメーターの値を持っている記事だけを一覧にする方法で取り組んでいます。検索
↓
https://exsample.com/?カスタム1=〇&カスタム2=△&カスタム3=□一覧は
$loop = new WP_Query( array( 'meta_query' => array( 'relation' => 'OR', //もしくは'AND' array('key' => 'カスタム1', 'value'=> '〇'), array('key' => 'カスタム2', 'value'=> '△'), array('key' => 'カスタム3', 'value'=> '□'), ), ) ); if ($loop->have_posts()): ・・・
でちゃんと表示されるところまで出来ています。
問題は、カスタムフィールドにとにかく制限がないので、
https://exsample.com/?あああ=〇&イイイ=△&UUUううう=□&えeeeえ=●&おオおオおオおオ=●
など、パラメーター名も数も可変するものに対してどう対応するか、なのです。カスタムフィールドのキー名を取得する関数は作成しているので、その関数を get_fields_grep() として
$field_key = get_fields_grep(); foreach($field_key as $key){ echo $key.','; }
という感じで、先述のURLで言えば(あああ,イイイ,UUUううう,えeeeえ,おオおオおオおオ,)を取得することはできています。
ならばと、
$loop = new WP_Query( array( 'meta_query' => array( 'relation' => 'OR', foreach($field_key as $key){ array('key' => $key, 'value'=> $_GET[$key]), } ), ) ); if ($loop->have_posts()): ・・・
と言う感じで、配列内にforeachを使ってみましたが、エラーになります。
配列内にループは使えないのがphpの基本なのかもわかってないのですが、とにかくは数も値も決まっていない
array('key' => $key, 'value'=> $_GET[$key]),
の個所をどうすればよいのか悩んでいます。思いつく方法や助言のある方がいらっしゃれば、お教えいただけると幸いです。
よろしくお願いいたします。
2件の返信を表示中 - 1 - 2件目 (全2件中)
2件の返信を表示中 - 1 - 2件目 (全2件中)
- トピック「カスタムフィールド検索機能自作で困っています。」には新たに返信することはできません。