WordPressサイトの全角スペースを使用した検索

2025.06.09

WordPressサイトで投稿の検索を行う際に日本語を入力する人は多いでしょう。
そして複数の検索ワードを入力するとき、多くの人が『全角スペース』を使用して複数ワードを区切っていくかもしれません。きっと多くの人がそうするでしょう。

WordPressのデフォルトの状態では検索時は『半角スペース』で検索ワードを区切って検索しないとヒットして欲しい投稿が検索結果に表示されません。

例えばこのページを検索する際に「WordPressサイト 検索」では検索ワードにヒットしません。

「WordPressサイト 検索」で検索すると検索ワードにヒットします。

こういった点を考慮して、WordPressで日本語(マルチバイト言語)のサイトを構築している運営者の多くは「WP Multibyte Patch」を使用しているように思います。

「WP Multibyte Patch」は検索の際に全角スペースを区切り文字として認識させます。また、検索文字列内の重複するスペースを取り除きます。

WP Multibyte Patch 作者 ドキュメント

 ※実際には「WP Multibyte Patch」は他にも多くの機能を持ったプラグインで私も長年利用させて頂いておりました。

しかし、検索については下記のようなコードをfunctions.phpなどに記述することで上記のようなプラグインを使用しなくても全角スペースを区切り文字に使用した検索が可能になります。たった一つのフックを記述するだけです。

// pre_get_posts アクションフックを使用します。
add_action('pre_get_posts', 'multibyte_space_search_enabled');
function multibyte_space_search_enabled($query) {
    if (is_admin() || !$query->is_main_query()) {
        return;
    }
    if (!is_search()) {
        return;
    }
    $s = get_query_var('s');
    $s = preg_replace('/[ \s]+/u', ' ', $s);
    if ($s) {
        $query->set('s', $s);
    }
}

参考 WordPress pre_get_posts

また、先日ご紹介しましたアップロードファイルのファイル名の投稿のように簡単にファイル名も自由にハッシュ化したり、投稿IDを使用した文字列に変更したりできますので、最新のWordPressでは「WP Multibyte Patch」をインストールして使用する必要はあまりないかもしれません。上記の「WP Multibyte Patch」が持つその他の機能がなくても問題が起きた経験がこれまでのところ私にはありません。

もしかすると「WP Multibyte Patch」はこれまで優れた機能を発揮してきましたが、そろそろお役御免となるときが来たのかもしれません。
優れたプラグインの開発と継続して長く改修されてこられた制作者の倉石様 - Seisuke Kuraishi - に感謝申し上げます。