技術Labo

気になったことやちょっとした作業の覚書

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を書き換えてしまえば自由に検索フォームを実装することも可能です

関連記事

フリースタイル
WEBシステムエンジニア
制作作業の合間に、情報の整理。ポートフォリオ用まとめサイト
Lancers にてお仕事中

勝ったにせよ負けたにせよ
振り返ってこそ経験ってのは活きるんだ

僕のヒーローアカデミア
by オールマイト