【WordPress】カスタムフィールドが無限に増えてもプラグインなしで検索対象にする

下記メリットがある。

  • WordPressのデフォルト検索フォームを加工する必要なし
  • 作成済み、またはこれから作成する全てのカスタムフィールドが対象
  • Advanced Custom Fields などプラグインで作成したカスタムフィールドも対象
  • プラグイン不使用なので検索結果の表示速度が若干上がる

デメリットもあり。

  • get_template_part など、投稿内容以外のテキストも全て検索対象になる
  • 管理画面での記事一覧検索にも反映される

大した問題じゃない。
※「このフィールドは含めたくない」などのカスタマイズはご自分でどうぞ。

このコードを作成した方は、WorePress公式サイトを参考にしたらしい。
posts join なんてフィルターは初めて知った。

 

カスタムフィールドを検索対象にするプラグインのダメなとこ

Search Everything
  • 重くて使い物にならない
  • 低スペックの共用サーバーならリソースオーバー間違い無し
Custom Fields Search by BestWebSoft
  • 同系プラグインの中ではおそらく一番軽い
  • が、検索対象にできるカスタムフィールド数に上限がある
  • ゴミ箱から削除したカスタムフィールドも管理画面に表示されるため、高確率でスパゲッティになる
    • このエントリーをはてなブックマークに追加