WordPress 検索プラグイン ~ WP Custom Fields Search / Search Everything
何かをしようとするとプラグイン頼みになってしまうWP。検索もその1つ。
カスタムフィールドを検索する必要があったのですが、本体の検索機能は未対応。そこでプラグインの出番となるのですが……
候補1:カスタムフィールドテンプレートの検索機能
カスタムフィールドを扱う場合必須となるプラグインこと「カスタムフィールドテンプレート」。検索機能も標準装備で、コードで簡単に実現できます。
しかしながら、カスタムフィールドのデータ量が大きくなると、サーバーに大きな負荷がかかることが判明。却下。
候補2:WP Custom Fields Search
カスタムフィールド検索系では人気のプラグイン「WP Custom Fields Search」。ところが、動作確認をしている際に色々な問題が発覚。まとめると下記の通り。
- 一部特殊な文字(※確認済みなのは中国語声調記号付き文字)が判別できない。
- ページ送りが正常に機能しない。検索結果の2ページ目以降でカスタムフィールドによる絞り込みが解除され、全ページの一覧になる。
- テンプレートタグの条件分岐でis_search()ではなくis_home()で判定される。でもテンプレートはsearch.phpが適用される。
色々調べたところ、2.についてはパーマリンク設定がデフォルト以外で、検索キーワードが半角英数字のみ以外の場合発生するようです。
ただ、その対応方法は不明。1.と3.についても修正方法は見つからず。
候補3:Search Everything
検索機能を大幅に拡張するプラグイン「Search Everything」。検索ワードのハイライトができる。
まとめ
結局、ワタクシは2と3を併用して使うことにしました。「WP Custom Fields Search」に「Search Everything」を組み込んで使うという非正規仕様。バグには目をつぶって、大抵の場合正常に表示される最大公約数を追うことにしました。一応機能しているので良しとしています。本当に良いのか……