WordPressのサイト内検索が全角スペースだとダメで半角区切りならOK?ープラグインなしで解決しました。

2020-07-06
Wordpress

wordpressサイト内検索全角対応方法eyecatch
Wordpress標準のサイト内検索を行ったところうまくいかない...

絞込検索で「ワードA ワードB」とAND検索をかけたいのにスペースを入れても検索にヒットしません。もしかしてサイト内検索は複数検索できないの?
と思ったのですがキーワード間の区切りを”半角スペース”にしたところうまくいきました。どうやら全角スペースではダメなようです。

プラグインなし(functions.php)でこの問題に対応して解決しました。

WordPressサイト内検索で複数検索に対応する

色々調べたところ、プラグインの【WP Multibyte Patch】を入れると解決するとのことで入れてみたのですが、ある問題が発生しました。

日本語タイトルでアップロードした画像ファイルの名前がおかしく(数字の羅列)になりました。iPadで稀に日本語ファイルの画像が表示できない事があるらしく、これに対応するためだと思われます。

SEOの面を考慮しても意味不明な数字の羅列がファイル名になるのは気に入らなかったのでプラグインは使わず、functions.phpで対応しました。
プラグイン過多はトラブルの元になりうるし、高速化の観点でも少ないほうが良いのでfunctions.phpでうまく動作すれば一石二鳥です♪

WordPressの検索で全角区切りが効かない

まずは全角スペースが効かない様子から…

サイト内検索の動作確認をするために、
「あいうえおWordpressかきくけこ 12345 検索!」
というタイトルの記事を作成しました。

wordpressサイト内検索全角対応方法1

本文は「Wordpressサイト内検索テスト中!」としました。

「あいうえお かきくけこ」というキーワードで検索してみます。
複数キーワードで記事タイトルが引っかかればOKなのですが…

wordpressサイト内検索全角対応方法2

全角スペースでのサイト内検索結果

検索結果は0件!!

次に「あいうえお かきくけこ」と半角区切り(スペース)で検索をしてみます。

wordpressサイト内検索全角対応方法3

半角スペースでのサイト内検索結果

ちゃんとテスト記事が検索結果に表示されました。
Wordpressのサイト内検索の区切りは半角スペースしか対応していないようです。

そこで検索ボタンが押された時に全角スペースが入っている場合、全角を半角に置換することで疑似的に全角スペースにも対応させるという方法が有名なようです。

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に追記します。

wordpressサイト内検索全角対応方法4

子テーマ内のfunctions.phpにコードを追加する

こんな感じですね。場所はどこでもOKです。
これで検索窓の検索ボタンを押したときに全角スペースを半角スペースへと変換し、複数キーワードでの検索に対応させることができます。

コードの追加が終わったら保存してサイト内検索を再度行ってみます。

wordpressサイト内検索全角対応方法5

全角スペースでの検索が半角に変換される

検索キーワードを全角スペースで区切ってもうまく半角スペースに変換されてから検索されるようになり、うまく記事が検索できました!

wordpressサイト内検索全角対応方法6

複数検索に対応できました。

検索は記事タイトルだけでなく、記事本文も検索対象となっているようです。

全角半角、カタカナ、ひらがな対応

サイト内検索の拡張では更にひらがなで検索してもカタカナで検索しても検索結果に表示させるコードもありました。

例えば「トマト」というキーワードが入った文章を書いた記事があったとして「とまと」と検索しても「トマト」と検索しても検索結果に表示できちゃう素晴らしいコードを公開している方もおられました。

上記の全角半角区切りのみならず、カタカナ、ひらがなでの検索に対応しているとのことですのでご紹介しておきます。

サイトによっては実装しておくと便利そうですね・w・

外部リンク

参考サイト様:Likiroku

まとめ

意外と盲点になりがち?なサイト内検索ってユーザービリティー的にはカテゴリやタグよりも重要かもしれないですね。

サイトに来てくれたユーザーさんが一つでも多くの記事を見てくれ、回遊率が上がるように使いやすいサイト内検索を心がけましょう・w・

検索に関しては標準装備のサイト内検索+チューニングで十分だと思っているので、プラグインレスで実装しました。サイト軽量化にもなるかな?

■Wordpressのサイト内検索には固定ページも含まれるので、必要であれば検索から除外することも出来ます↓

-Wordpress
-

ありがとうございました。
良かったらシェアしてネ・w・

© 2022 ソロ学