埼玉のWebコンサルタント

お問合せ

WordPressのサイト内検索の全角・半角問題対処法

WordPressのサイト内検索の全角・半角問題対処法

WordPressのサイト内検索は標準では日本語の処理(全角・半角まわり)に少々クセがあります。

検索における日本語の問題点

日本語は同じ意味の言葉でも「全角」と「半角」の2通りの表記方法がありますが、コンピュータの世界では「全角」「半角」は別の文字列として扱われます。そのため、多くのサイトでは英数字は「半角」、カタカナは「全角」で表記していると思いますが、サイト内検索時に「全角英数」や「半角カナ」で検索されると本当は該当する情報が掲載されているにもかかわらず、検索結果にヒットしません。

また、複数キーワードで検索するときにスペースで区切って検索しますが、このときスペースを「全角スペース」にしてしまうとand検索になりません。

これはちょっとマズイですね。せっかく情報があるのに見つけてもらえません。

全角・半角の表記の揺れに対応する方法

その1:スペース区切りの対応

すでにインストール済の人が多いと思いますが、マルチバイト言語のさまざまな問題を解決してくれるプラグイン「WP Multivyte Patch」を有効化すると、「全角スペース」は「半角スペース」に置き換えらるようになります。(他にもマルチバイトいろいろな問題を解決してくれるのでインストール必須です)

その2:「全角英数」を「半角英数」に、「半角カナ」を「全角カナ」に変換

文字列を指定した変換方法で変換して結果を返すmb_convert_kana()関数を使います。

functions.phpに下記のコードを追加します。

if(isset($_GET['s'])) $_GET['s']=mb_convert_kana($_GET['s'],'KVa','UTF-8');

上の例では変換方法として「K(半角カタカナ → 全角カタカナ)」、「V(KまたはHと一緒に使用し、濁点付きの半角文字を全角の1文字に変換)」、「a(全角英数字 → 半角英数字)」を指定しています。変換方法は次の表をご参照ください。

変換方法 変換内容
r 全角英字 → 半角英字
R 半角英字 → 全角英字
n 全角数字 → 半角数字
N 半角数字 → 全角数字
a 全角英数字 → 半角英数字
A 半角英数字 → 全角英数字
s 全角スペース → 半角スペース
S 半角スペース → 全角スペース
k 全角カタカナ → 半角カタカナ
K 半角カタカナ → 全角カタカナ
h 全角ひらがな → 半角カタカナ
H 半角カタカナ → 全角ひらがな
c 全角カタカナ → 全角ひらがな
C 全角ひらがな → 全角カタカナ
V KまたはHと一緒に使用し、濁点付きの半角文字を全角の1文字に変換
トップに戻る