
Photo Cameron Kirby via Unsplash
WordPressのサイト内検索で「ひらがな」と「カタカナ」、「全角英数」と「半角英数」を区別しないでマッチさせる方法を紹介します。
例えば、検索キーワードに「トマト」を指定したときに「とまと」を含む投稿を検索結果に表示させることが可能です。
また、検索キーワードに「NEW」と全角で指定したときに半角の「NEW」を含む投稿を検索結果に表示させることが可能です。
実装は簡単です。下記のコードを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 );
これで、「ひらがな」と「カタカナ」、「全角英数」と「半角英数」を区別せずに検索することができます。