FE Advanced Search(絞り込み検索プラグイン for WordPress)の最新版version1.9.1をリリースしました。ご利用中の皆様はダッシュボードよりアップデートをお願いいたします。
version 1.9.1の更新内容
新機能
- フォームまわりにフィルターフックを大幅に実装(96箇所)
修正
- ACF関連の修正(array_key_existsのエラー修正)
- Polylang関連の修正(DBのプリフィックス修正)
- PHP7.3未満の環境で発生するエラーを修正(ヒアドキュメント関連)※PHP7.3.5以上を推奨
フィルターフックについて
WordPressは「アクション/フィルターフック」という仕組みにより、WordPress本体、プラグインやテーマの処理の流れに割り込んで、元々の機能に独自の機能を追加したり出力される内容をカスタマイズすることなどができます。
FEASも従来より段階的にフィルターフックを実装してきましたが、今回、検索フォームの各所に大幅にフィルターフックを追加実装しました。これにより、検索フォームの表示のカスタマイズが柔軟にできるようになりました。
例えば、次のようなことが可能になりました。
- 階層化されたカテゴリ/タームのチェックボックス群を、階層ごとにdivタグで囲ってインデント表示。ただしフォームID=5のみに適用。
シンプルなコード記述例(下記コードをテーマのfunctions.phpに記述):
function feas_term_checkbox_group_wrapper( $html, $args ){
if ( $html ) {
if ( 5 === $args['manag_no'] ) {
$depth = esc_attr( $args['depth'] );
$preHtml = "<div class='depth{$depth}'>\n";
$postHtml = "</div>\n";
$html = $preHtml . $html . $postHtml;
}
}
return $html;
}
add_filter( 'feas_term_checkbox_group_html', 'feas_term_checkbox_group_wrapper', 10, 2 );
その他にも次のような利用方法も考えられます。
- ドロップダウン/セレクトボックスの項目を、グループ毎に<optgroup></optgroup>タグで囲む
- 設定画面から入力するには複雑すぎるHTML/CSSを、テーマのfunctions.phpに独自関数を書いて追加する
- 検索フォーム(formタグ)にhiddenタグを追加して、独自のパラメータをURL渡す
- 特定のフォームIDの特定の検索項目、特定アイテムにのみ、data属性を挿入
- 他
従来、プラグインファイルを直接編集して実現していた場合は、アップデートの度にカスタマイズ箇所を反映する手間や、うっかりアップデートによりカスタマイズ箇所が消えてしまったといったトラブルもありえましたが、このフィルターフックにフックする関数をテーマのfunctions.phpに記述したり、プラグイン化することでそのような面倒もなくなります。
今後、ソート機能や検索機能自体にもフィルター/アクションフックを充実させていきます。
「このような処理ができると助かるんだけど…」などご要望がございましたら、優先的に実装いたしますのでお気軽にご相談ください。
※アクション/フィルターフックについてのドキュメントは追って順次加筆いたします。