WordPressの検索機能で「ひらがな」と「カタカナ」、「全角英数」と「半角英数」を、同じ文字列として検索できるようにするカスタマイズをご紹介します。
WordPressに実装されているデフォルトの検索機能は、「ひらがな」と「カタカナ」、「全角英数」と「半角英数」、それぞれを別々の文字として認識します。
例えば、「めーる」で検索した場合、「メール」を含む記事は検索結果に表示されません。
「MAIL」で検索した場合、「mail」を含む記事は検索結果に表示されません。
サイトによっては、「ひらがな」と「カタカナ」、「全角英数」と「半角英数」を同じ文字として検索したい場合も出てくるかと思います。
今回ご紹介するカスタマイズを行うと、「ひらがな」と「カタカナ」、「全角英数」と「半角英数」を同じ文字として認識して、検索できるようになります。
検索キーワード「めーる」の場合、「メール」を含む記事も検索対象となります。
検索キーワード「メール」の場合、「めーる」を含む記事も検索対象となります。
検索キーワード「MAIL」の場合、「MAIL」を含む記事も検索対象となります。
検索キーワード「MAIL」の場合、「MAIL」を含む記事も検索対象となります。
とある案件でカスタマイズを経験したので、そのやり方を以下にシェアします。
「ひらがな」と「カタカナ」、「全角英数」と「半角英数」を区別せず検索できるようにする手順
手順といっても、やることはひとつしかありません。
下記のコードをfunctions.phpに追記するだけです。
function change_search_char($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', 'change_search_char', 10, 2 );
参考:Web制作ナビ
上記のコードをfunctions.phpに追記すれば、カスタマイズは完了です。
「ひらがな」と「カタカナ」、「全角英数」と「半角英数」を区別せずに検索できるようになっていますので、実際に検索して動作を確認してください。
まとめ
WordPressの検索機能で「ひらがな」と「カタカナ」&「全角英数」と「半角英数」を区別させず検索させるカスタマイズをご紹介しました。
今回のカスタマイズを行うと、
検索キーワード「めーる」の場合、「メール」を含む記事も検索対象となります。
検索キーワード「メール」の場合、「めーる」を含む記事も検索対象となります。
検索キーワード「MAIL」の場合、「MAIL」を含む記事も検索対象となります。
検索キーワード「MAIL」の場合、「MAIL」を含む記事も検索対象となります。
簡単なコピペで実装可能なカスタマイズです。
ぜひ、挑戦してみてください。
Function php のどのあたりに入れればいいのですか?
どのサイトにもfunction phpに突っ込めと書いてあるのですが、どのあたりに挿入すればいいのかわかりません。
基本的に末尾に追加すればよいかと思います。
他のコードとの兼ね合いもあるかもしれません。
そこは様子を見て調整してください。
function.phpを編集されます場合は、予めファイルをバックアップしてください。