【WordPress】検索の濁音「゛」、半濁音「゚」を区別するための記述コード(プラグイン不要)

WordPressに備わっている検索機能は、
「ざしずぜぞ」といった「濁点」は、「さしすせそ」として、
「ぱぴぷぺぽ」といった「半濁点」は、「はひふへほ」として
区別なく一緒くたにされて抽出される。

こうなってくると
バス」で検索しても「パスタ」「パズル」なども抽出されるので
あまり精度がいいとは言いにくい。

その問題を解決するには、functions.phpに下記コードを記述する。

※参考にしたサイト:
WordPressサイト内検索で濁点あり/なしがうまく検索できない

functions.phpにコード記述

外観⇒テーマエディタ⇒functions.php

下記を追記するだけ。

// 検索方式を「LIKE」から「LIKE BINARY」へ変更するコード
function my_posts_where( $where, $obj ) {
     if ( $obj->is_search ) {
         $where = str_replace( 'LIKE', 'LIKE BINARY', $where );
     }
     return $where;
 }
 add_filter( 'posts_where', 'my_posts_where', 10, 2 );

↓こんな感じで

これで、
バス」と検索しても「パスタ」が出ることはなくなったし、

パン」と検索しても「ハンバーグ」が出ることもなくなりました。

めでたしめでたし。

 

追伸:ただし「ひらがな」と「カタカナ」も区別されるようになったので注意

今までは「ぱん」も「パン」も同様に検索されていましたが、

今度からは「パン」で検索したら「あんぱん」はヒットしません。「カタカナ」と「ひらがな」が違うからです。

平仮名とカタカナも区別されるようになったので、一応注意が必要です。

まあ、「ぱん」で検索して「ハンバーグ」が出てくる精度にくらべたら

断然今の方がいいですけど。。。笑