WordPress 検索プラグイン ~ WP Custom Fields Search / Search Everything

何かをしようとするとプラグイン頼みになってしまうWP。検索もその1つ。

カスタムフィールドを検索する必要があったのですが、本体の検索機能は未対応。そこでプラグインの出番となるのですが……

候補1:カスタムフィールドテンプレートの検索機能

カスタムフィールドを扱う場合必須となるプラグインこと「カスタムフィールドテンプレート」。検索機能も標準装備で、コードで簡単に実現できます。

しかしながら、カスタムフィールドのデータ量が大きくなると、サーバーに大きな負荷がかかることが判明。却下。

カスタムフィールド検索系では人気のプラグイン「WP Custom Fields Search」。ところが、動作確認をしている際に色々な問題が発覚。まとめると下記の通り。

  1. 一部特殊な文字(※確認済みなのは中国語声調記号付き文字)が判別できない。
  2. ページ送りが正常に機能しない。検索結果の2ページ目以降でカスタムフィールドによる絞り込みが解除され、全ページの一覧になる。
  3. テンプレートタグの条件分岐でis_search()ではなくis_home()で判定される。でもテンプレートはsearch.phpが適用される。

色々調べたところ、2.についてはパーマリンク設定がデフォルト以外で、検索キーワードが半角英数字のみ以外の場合発生するようです。

ただ、その対応方法は不明。1.と3.についても修正方法は見つからず。

候補3:Search Everything

検索機能を大幅に拡張するプラグイン「Search Everything」。検索ワードのハイライトができる。

まとめ

結局、ワタクシは2と3を併用して使うことにしました。「WP Custom Fields Search」に「Search Everything」を組み込んで使うという非正規仕様。バグには目をつぶって、大抵の場合正常に表示される最大公約数を追うことにしました。一応機能しているので良しとしています。本当に良いのか……