WordPressをCMSとした企業サイトやポータルサイト、Webサービス開発方法やTipsなど。 ファーストエレメントが運営する、WordPressに特化した技術系ブログ。
10.29
2006
【追記:2008-12-25】
現在では、WordPressに標準添付されている「WP Multibyte Patch」をOnにすると下記のようなハックは必要ありません。
■現状:
WordPressは(その他アプリにもよく見られるが)、検索フォームから記事検索する際、複数の単語を「全角スペース」で区切るとうまく検索されない。全角スペースも文字列の一部として認識され、前後のキーワードも含めて1つの言葉として検索が行なわれてしまう。
■対象ファイル:
wp-includes > classes.php
■修正部分:
426行目、427行目に続いて下記を挿入。
$q['s'] = str_replace(‘ ’, ‘ ‘, $q['s']);
※426、427行目の書式に従って全角スペース→半角スペース変換のルールを付け加える。
そして、このファイルをブログの文字コードで保存する。ブログがUTF-8でDreamweaverで編集する場合、メニューバーの修正>プロパティ>エンコーディングを「Unicode4.0 UTF-8」にして摘要。
以上
■情報源:
全角スペースでも And検索可能に Tips Community
全角スペースで複数単語検索。 お力をお貸し下さい~。 WordPress Japan フォーラム
※上記WordPress Japanのフォーラムでは、検索実行時(onsubmit)にJavaScriptで全角スペースを半角スペースに変換して検索に渡す方法があり、それを試してみたが、うちのサイト(文字コードはUTF-8)の場合なぜかトップページの検索フォームでしかうまくいかなかった。個別記事のヘッダやフッタに設置した検索フォームからはうまくいかなかった(変化が見られなかった)。
【追記】
もしかしてAND検索とOR検索をあいまいに記事を書いたかも?と思いME2.0.9確認したところ、AND検索とOR検索を一度に実行するようです(笑)
(例:3つのキーワードで検索する場合のSQL構文のようす)
1つ目のキーワードでタイトルと本文をOR検索
AND
2つ目のキーワードでタイトルと本文をOR検索
AND
3つ目のキーワードでタイトルと本文をOR検索
OR
1~3のキーワードを半角スペースで繋いだ状態でタイトル検索
OR
1~3のキーワードを半角スペースで繋いだ状態で本文検索
該当部分のコード(440~451行目)
ここでついでに、その前の行435~439行目を見ると
“exact”という値をformのチェックボックスのname属性に与えてやれば(もしくはURLのクエリに&exactを付ける?)、SQL文からワイルドカード”%”が取り除かれて”完全一致”検索ができる、ということでしょうか?だとして、意味あるのかな。。。
| 日 | 月 | 火 | 水 | 木 | 金 | 土 |
|---|---|---|---|---|---|---|
| « 12月 | ||||||
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | |||
コメント/質問お待ちしています