WordPress の内部のどこでどのような方法でプログラムされているのか知りませんので、ちょっと一般的に。
検索時に「約物はすべて無視する」という方法もあります。検索を指示するキーワードからも、検索される側の記事などからも、チルダや括弧や句読点などをすべて取り除いた上でマッチするかを判定します。WordPress のほかで、このような実装になっているところをときどき見かけます。見逃しがないようなるべく広く拾い出したいという要求に応えていて、案外、実用的です。
しかしそうすると、「”〜”のみで検索したい」というような、通常の要望としては珍しいパターンの場合に対応できないという欠点はあります。
Makoさん
ありがとうございます。仰るように、約物を無視するという方法もありますね。恐らくGoogleなどでも英記号に無視しているものがあるように思います(時々不便ですが)。
ただ、私のブログは趣味レベルなのでさほど問題ではないのですが、例えば猫ならみんな大好き「ち○~る」のような商品名を検索した時、「~」も含めてきれいにヒットして欲しいとは思います。中国語の簡体字・繁体字でも「~」を多用するので、たぶん同じことが起きていると思います。
全角チルダと波ダッシュは見た目が似ているというレベルではなく、完全に同一という点で厄介だと思います。一般ユーザがまったく意識せずに混用しているという点では唯一の存在かと思います。
Unicode登録時の歴史的経緯もあるそうですが、ユーザに背負わせる問題でもないですし、できればWP側で吸収してもらえたらと思います。
こんにちは
WordPress の検索時の文字列比較はデータベースである MySQL の照合順序に依存します。
ですので、全角チルダと波ダッシュを同一とみなすべきなのであれば、本来論からいえば MySQL 側にそのような機能を盛り込むように依頼すべきと思います。
しかし、見た目が同じということであればハイフンも見分けがつかないものがあるなど、どこまでイレギュラーとして取り込むかの判断は難しく、一般的な必要性も高くなさそうなので取り込まれる可能性は低いのではないでしょうか。
WordPress 本体においては、そのような対応をしてしまうと文字列比較ロジックが MySQL と WordPress 両方に分散してしまって将来的な負の遺産になりそうです。また、そのようなイレギュラーはプラグインで解決するのが通常の対応に思われます。
どうしても WordPress 本体にそのような機能が必要だとお考えなら、WordPress Trac でチケットを発行することをお勧めします。
munyaguさん こんにちは
ご返信ありがとうございます。
WordPress 本体においては、そのような対応をしてしまうと文字列比較ロジックが MySQL と WordPress 両方に分散してしまって将来的な負の遺産になりそうです。
これは確かにおっしゃる通りで、安易にWP側が対応すると、さらなる混乱を生むかも知れません。
負の遺産をさらに増やしたのでは本末転倒ですので、WP側でという考えは改めます。
プラグインで解決するべきという点では、できればWP Multibyte Patchなどがその役を担って欲しいですね。
原因が何であれ、一般ユーザにとっては不具合ですので。
時間はかかると思いますが、自分でも調べてプラグイン作成に挑戦してみます。