WordPressで全角半角、片仮名平仮名でも検索可能にする

サイト内検索が使いやすいと訪問者だけでなく自分があとでサイトを見返すときも便利です。

しかしワードプレスは初期設定のままだと検索機能がいまいち使いにくい。

そこで今日はワードプレスの検索機能をカスタマイズします。



全角・半角、片仮名・平仮名を区別せず検索する

サイト内の検索で、例えば
「LINE」でも「LINE」でも、
「ライン」でも「らいん」でも検索ができるようにしたいです。

つまり、

全角・半角の英数字いずれでも、
片仮名・平仮名いずれでも、
同じ意味として検索をしたいわけです。

これがデフォルトのワードプレスの検索機能ではできないのですが、

「functions.php」にコードを追加することで比較的簡単に検索可能にすることができます。


「functions.php」を編集する

以下、手順です。

コードに直接書き足しますので、子テーマを準備しておくことをおすすめします。

「外観」→「テーマの編集」にて、「functions.php」に以下のコードを追加します。

//以下、全角半角英語、片仮名平仮名いずれでもヒットする検索コードです。
function zenkaku_hankaku_kensaku($where, $obj) {
  if ($obj->is_search) {
    $where = str_replace(".post_title", ".post_title COLLATE utf8_unicode_ci", $where );
    $where = str_replace(".post_content", ".post_content COLLATE utf8_unicode_ci", $where );
  }
  return $where;
}
add_filter( 'posts_where', 'zenkaku_hankaku_kensaku', 10, 2 );
//以上、全角半角英語、片仮名平仮名いずれでもヒットする検索コードでした。

うまくいかないときは以下をご参考に。

補足記事:WordPressでテーマを編集して設定が反映されないとき


同じ意味として検索できる

これにより全角・半角英数字、片仮名・平仮名を同じ意味として検索できます。

つまり、

例えば「LINEの使い方」というページを「LINE」で検索しても「LINE」で検索しても見つけることができるようになります。

同様に、「ラインの使い方」というページが仮にあったら「ライン」でも「らいん」でもヒットします。


まとめ

サイト内検索が使いやすいと訪問者だけでなく自分があとでサイトを見返すときも便利です。

サイトの使いやすさはSEOにも影響するでしょう。

検索キーワードが全角か半角か、片仮名か平仮名かは探す本人にとってはどうでもよくて、とにかく該当の記事が出てきてほしいことが多いと思います。

デフォルトのワードプレスの検索機能では全角・半角、片仮名・平仮名を区別して検索してしまいます。

これらを同じ言葉として検索するには

「functions.php」にコードを追加することで可能になります。

コードもそれほど長くなく、コピペでできるので比較的やりやすいカスタマイズなのではないかと思います。


その他の記事

WordPressのバックアップをできるだけ簡単にとりたい

WordPressでメディアをカテゴリー分けしたい~Enhanced Media Library~

予約投稿で更新日が公開日より前の場合は更新日を非表示にする方法


参考資料

『WordPressの検索で「ひらがな」と「カタカナ」、「全角英数」と「半角英数」を区別しないでマッチさせる方法』(Web制作ナビ)2018年9月24日検索