WordPressのサイト内検索をOR検索に変更する方法

WordPressのサイト内検索をOR検索に変更する方法

WordPressのサイト内検索をOR検索に変更する方法

WordPressのサイト内検索機能で複数のキーワードを入力して検索する場合、デフォルトではAND検索になります。

例えば、「テスト」と「テストneko」という投稿があったとして、「テスト neko」で検索すると”テスト”と”neko”の両方を含む 「テストneko」 のみがヒットします。これがAND検索です。

AND検索の検索結果

一方でOR検索は、「テスト neko」で検索すると”テスト”と”neko”のいずれかを含む投稿がヒットするので、「テスト」と「テストneko」の両方が検索結果に表示されます。

OR検索の検索結果

サイト内検索の用途としてはAND検索が好ましいケースの方が多いかとは思いますが、サイトによってはAND検索ではなくOR検索をしたいというケースもあると思います。

そこで今回は、WordPressのサイト内検索をOR検索に変更する方法をご紹介したいと思います。

WordPressのサイト内検索をOR検索に変更する方法

サイト内検索をOR検索に変更するには、posts_searchというフィルターフックを利用します。posts_searchは、WP_Queryで使用されるSQLクエリのWHERE句を変更できるフックです。

適用しているテーマのfunctions.phpに以下コードを追加すれば、検索方法がOR検索に変わります。コピペでOKです。

function custom_or_search($search) {
  return str_replace(')) AND ((', ')) OR ((', $search);
}
add_filter('posts_search', 'custom_or_search');

検索実行時のWHERE句で”AND”と”OR”を書き換えることで、検索方法をANDからORに変更しています。

あとがき

posts_searchフックを使うことで、簡単にOR検索へ変更可能ですね。

サイト内検索の検索方法を変更したい時は、ぜひ参考にしていただければと思います。

この記事が気に入ったら
いいね!してね♪

Twitter で

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です