質問: ### 前提・実現したいこと searchform.phpでラジオボタンだけの検索フォームを作成しました。 ラジオボタンの値とカスタムフィールドに設定している記事の検索結果を表示したいのです。 ### 発生している問題・エラーメッセージ 恥ずかしいですが、search.php側の記述方法が理解できず記述方法がわかりません。 例えばSearchform側で年齢:20代、仕事:事務、で検索を行ったときにカスタムフィールドに設定してある年齢:20代、仕事:事務の投稿を表示するSearch.phpのサンプルや参考サイトをご教示頂けないでしょうか。 ### 該当のソースコード ``` searchform.php 年齢 20代 30代 40代 50代以上 仕事 営業 事務 技術系 ``` ### search.php 'nenrei', 'value'=> $age, 'compare'=>'LIKE', ); } ?> 検索条件 検索キーワード: カスタムフィールド: 検索結果 $metaquerysp, 's' => $s, ) ); ?> 該当なし ### 試したこと 現時点では検索結果の対象年齢だけにしています。 テキスト検索を行った場合は検索結果が出力されますが、ラジオボタンでは該当なしになってしまいます。 Custom Field Template(バージョン 2.3.7) 上記プラグインにラジオボタンにあったフィールドを追加しました。 Search Everything options (current version 8.1.9) カスタムフィールドを検索対象に設定しました。 ### 補足情報(FW/ツールのバージョンなど) teratailで質問するのも初めてでお目汚しな質問をしてしまい申し訳ありませんが、是非アドバイスをお願い致します。
回答: functions.php に下記のようなコードを書くことで検索内容を操作することができます。 【Plugin API/Action Reference/pre get posts « WordPress Codex】 > > > ``` > function search_filter($query) { > if ( !is_admin() && $query->is_main_query() ) { > if ($query->is_search) { > $query->set('post_type', 'post'); > } > } > } > > add_action('pre_get_posts','search_filter'); > ``` > > あとは `$_GET['age_id']` とかからの内容を取得して meta_query を書き換えればできると思います。 【pre_get_postsフックでmeta_queryを変える方法 - Daily GLOCALISM】