WordPress検索でカタカナとひらがなを同じように検索できるようにする

私は自分でもこのblogを参照することが多くて、検索窓から入力してページを探しています。先日、絶対にあるはずのページのキーワードを入力したのにページが見つからず、どうして?ということがありました。
カタカナとひらがなの違いで検索できなかったようなのですが、googleのようにひらがなでもカタカナでも同じように検索してくれるようにできないかな?と思い、ちょっとカスタマイズしてみましたのでそれについて書きます。

あれ?確実に書いたおぼえがあるのに見つからない…

先日、お勧めエディタはこれですーと紹介しようとしたのですが、

さくらエディタ と入力して検索すると

見つかりません になってしまいます。あれ?絶対に書いたはずなのになんでヒットしないんだろう…と、別のキーワード フリーソフト エディタ で検索すると、

見つかりました…なるほど さくらエディタ ではなく サクラエディタ だったんですね。Google検索等で慣れているとカタカナでもひらがなでもどっちでもいいかと思ってしまいますが、WordPressの検索はカタカナはカタカナでないとヒットしないようです。

カタカナでもひらがなでもヒットする方法を検索してみた

mysql ひらがな カタカナ 区別しない でググってみました。

【MySQL】大文字小文字、全角半角区別しないでマッチする検索をしたい

こちらのサイトを参照させていただきました。検索するときのSQL文のitemに collate utf8_unicode_ci とつければ、ひらがなでもカタカナの検索をしてくれそうです。

ということは検索の時のSQL文を書き換えればOKそうです。

WordPressで検索をしているSQL文を参照する

ここで前回のblogが出てくるんですが(^_^;、「XAMPPでMySQLのログを各バージョン別で確認する方法」で、検索したときのSQL文を確認しました。

このようなものでした。入力した文字列でタイトルと本文を検索しているようです。

このSQL文をphpMyAdminのSQLタブで実行してみると、

返り値が空でした となります。今がこの状態ですね。

このSQL文にcollate utf8_unicode_ci を追加してみます。

こんな感じ。SQL文をphpMyAdminのSQLタブで実行してみると、

1件検索結果が出ました。これでOKそうです。

WordPressのsearchのwhere文を書き換える

どのように書き換えるかは分かったので今度はWordPressの検索をしたときのwhere文を書き換えたいと思います。

なんらかのフィルターでできるのでは?と検索してこちらのページを見つけました

WordPressのデフォルトの検索をカスタマイズする

こちらでフィルターが分かりましたので、collate utf8_unicode_ci を追加するように書き換えてみます。

使っている子テーマのfunctions.php

これを追加します。posts_where フィルターはWordPressCodexによると「post 配列を返すクエリの WHERE 節に適用される」もののようです。

$obj->is_search検索結果のページだったらという絞り込みをしておいて、そのときだけwhere文をcollate utf8_unicode_ci を追加するように書き換えます。

※ データベースの文字コードがutf-8でない場合はこのコードでは検索ができないようでした。トラックバックで教えていただきました。collate utf8_unicode_ci という部分を collate utf8mb4_unicode_ci と変更するとその場合でも検索できるようです。

wp_サーバ引っ越しで起こった、検索ができないという理由と解決法

こちらの記事で教えていただきました。ありがとうございました。

この状態で

さくらエディタ で検索すると、

このように サクラエディタ も検索できるようになりました(^^)/

[Amazon sponsored link] MySQL 関連本
兎本美佳

ブログを見た人がそのままできたらいいなと思って、できるだけ丁寧に書いています。blogに書いたようなネタの有償対応のご相談は「ゆうそうと」へいただければと思います(^^)/
無償での対応をご希望の場合は、コメントをいただけましたら可能な場合はコメントを返させていただきます。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク
スポンサー広告
ブログをメールで購読

メールアドレスを記入して購読すれば、更新をメールで受信できます。

261人の購読者に加わりましょう

コメント

  1. […] WordPress検索でカタカナとひらがなを同じように検索できるようにする […]

    • 兎本美佳 兎本美佳 より:

      おぉ!なるほど。DBの文字コードが変わったからこれも変えないといけなかったですね!教えていただき、またご紹介いただきありがとうございます(^^)/。記事にも反映させます。

  2. […] 参考: WordPress検索でカタカナとひらがなを同じように検索できるようにする | RYUS blog […]

トップへ戻る