絞込検索で「ワードA ワードB」とAND検索をかけたいのになぜ?
そして気が付いた、キーワード間の区切りを”半角スペース”にするとうまく動作する。
プラグイン無しでこの問題に対応して解決しましたと言う話。
WordPressサイト内検索を全角区切り対応にする方法
WordPress標準のサイト内検索の動作
サイト内検索の動作確認をするために「あいうえおWordpressかきくけこ 12345 検索!」というタイトルの記事を作成。
本文は「Wordpressサイト内検索テスト中!」としてみました。
記事タイトルをAND検索してみようと「あいうえお かきくけこ」というキーワードで検索!
検索結果0・・・
続いて「あいうえお かきくけこ」と半角区切り(スペース)で検索をしてみた。
ちゃんとテスト記事が検索結果に出た。
う~んと思って色々調べたところ、プラグインの【WP Multibyte Patch】を入れると解決するとのこと。
で入れてみたんですけど、ある問題が発生。
日本語タイトルでアップロードした画像ファイルの名前がおかしいこと(数字の羅列)になりました...SEO的にあんまりよろしくないと思ったのでこのプラグインは削除!
プラグイン過多はトラブルの元になりうるし、高速化の観点でも少ないほうが良いと思うので...
本題!functions.phpにコードを追加して解決する
素晴らしい先人たちが同じ問題をfunctions.phpにコードを追加することで解決してくれていましたので知識を拝借させていただきました。
参考サイト:ゆるりの足あと様
//検索全角スペース対応
function empty_search( $query ) {
if ( $query->is_main_query() && $query->is_search && ! $query->is_admin ) {
$s = $query->get( 's' );
$s = str_replace(' ',' ', $s );
$query->set( 's', $s );
}
}
add_action( 'pre_get_posts', 'empty_search' );
上記のソースコードをfunctions.phpに追記します。
動作としては検索窓の検索ボタンを押したときに全角スペースを半角スペースへと変換するようです。
コードの追加が終わったら保存してサイト内検索を再度行ってみます。
検索キーワードを全角スペースで区切ってもうまく半角スペースに変換されてから検索されるようになり、うまく記事が検索できました!
↓ちなみに検索は記事タイトルだけでなく、記事本文も検索対象となっているようです。

全角半角、カタカナ、ひらがな対応
例えば「トマト」というキーワードが入った文章を書いた記事があったとして「とまと」と検索しても「トマト」と検索しても検索結果に表示できちゃう素晴らしいコードを公開している方もおられました。
全角半角区切りのみならず、カタカナ、ひらがなでの検索に対応しているとのことですのでご紹介しておきたいと思います。
参考サイト:Likiroku様
まとめ
意外と盲点になりがち?なサイト内検索ってユーザービリティー的にはカテゴリやタグよりも重要かもしれないですね。
サイトに来てくれたユーザーさんが一つでも多くの記事を見てくれ、回遊率が上がるように使いやすいサイト内検索を心がけましょう・w・
検索に関しては標準装備のサイト内検索+チューニングで十分だと思っているので、プラグインレスで実装しました。サイト軽量化にもなるかな?