WordPress 絞り込み検索 ( Search & Filter )
標準の検索フォームにカテゴリー、タグなどの検索条件を追加
Search & Filter プラグインをインストール・有効化したあと、次のコードを、検索フォームを出したいページのテンプレート(PHP)に書きます。(※ 2023 年 8 月時点の内容です)
<?php
echo do_shortcode( '[searchandfilter fields="search,category,post_tag" headings="キーワード,カテゴリー,タグ" types=",checkbox,radio" submit_label="検索"]' );
?>
上記コードを検索を実装したいページに記述することで検索フォームが表示されます
コードの説明
fields には、検索の対象にしたい項目(search:キーワード・category:カテゴリー・post_tag:タグ など)を書きます。headings には、それぞれの項目の見出しを同じ順で書きます。
| fields | 検索対象としたい内容を指定 |
| headings | 検索対象項目の見出しを指定 |
| types | 指定なし type=”text” checkbox,radio などの typeの指定が可能 フリーフォーマットのテキスト項目、チェックボックス、ラジオボタンという感じです |
| submit_label | 検索実行時のボタンの名称指定 |
まずはここまでの設定ができれば簡易的な検索フォームの実装は完了となります
カスタムフィールドを検索対象とする場合
Advanced Custom Fields(ACF)プラグインをインストールしカスタムフィールドを作成します
ACF: Better Searchプラグインをインストールしフィールドタイプなど検索対象としたい項目を設定します
この状態で追加したカスタムフィールド内のテキストがフリーの検索項目で検索対象となります
カスタムフィールドの項目をセレクトボックスで検索できるようにする
<?php
// ショートコードにて生成した検索フォームのhtmlを取得
$search_form = do_shortcode( '[searchandfilter fields="search,category,post_tag" headings="キーワード,職種,分類" types=",checkbox,radio" submit_label="検索"]' );
// 取得したhtmlを任意の内容に修正
$search_form = str_replace('<input type="text" name="ofsearch" placeholder="Search …" value="">', '<select name="ofsearch"><option value="">未選択</option><option value="パンダ">パンダ</option><option value="キリン">キリン</option></select>', $search_form);
// 検索フォーム表示
echo $search_form;
?>
ショートコードで生成されたHTMLをphp側で取得して必要な内容にhtmlを書き換えてしまえば自由に検索フォームを実装することも可能です


