WordPress 絞り込み検索 ( Search & Filter )
標準の検索フォームにカテゴリー、タグなどの検索条件を追加
Search & Filterプラグインをインストール&有効化した後に
<?php
echo do_shortcode( '[searchandfilter fields="search,category,post_tag" headings="キーワード,カテゴリー,タグ" types=",checkbox,radio" submit_label="検索"]' );
?>
上記コードを検索を実装したいページに記述することで検索フォームが表示されます
上記コードのまずは説明
fieldsこちらは検索対象としたい
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を書き換えてしまえば自由に検索フォームを実装することも可能です