このブログは今後は更新されません。FE.labsにてWordPress向けの記事も更新してゆきますのでよろしくお願いします。
今後このドメインは、ファーストエレメントのWordPress関連業務のブランドサイトとして近くリニューアルする予定です(2012/8/24)。
カテゴリ&タグ&カスタムフィールド&年月&キーワードで絞り込み検索ができるプラグイン『FE Advanced Search』

全角スペース区切りで複数キーワード検索

【追記: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行目)

if (!$q['sentence']) {
$s_array = explode(‘ ‘,$q['s']);
$q['search_terms'] = $s_array;
$search .= ‘((post_title LIKE ¥”.$n.$s_array[0].$n.’¥’) OR (post_content LIKE ¥”.$n.$s_array[0].$n.’¥’))’;
for ( $i = 1; $i < count($s_array); $i = $i + 1) {
$search .= ‘ AND ((post_title LIKE ¥”.$n.$s_array[$i].$n.’¥’) OR (post_content LIKE ¥”.$n.$s_array[$i].$n.’¥’))’;
}
$search .= ‘ OR (post_title LIKE ¥”.$n.$q['s'].$n.’¥’) OR (post_content LIKE ¥”.$n.$q['s'].$n.’¥’)';
$search .= ‘)’;
} else {
$search = ‘ AND ((post_title LIKE ¥”.$n.$q['s'].$n.’¥’) OR (post_content LIKE ¥”.$n.$q['s'].$n.’¥’))’;
}

ここでついでに、その前の行435~439行目を見ると

if ($q['exact']) {
$n = ”;
} else {
$n = ‘%’;
}

“exact”という値をformのチェックボックスのname属性に与えてやれば(もしくはURLのクエリに&exactを付ける?)、SQL文からワイルドカード”%”が取り除かれて”完全一致”検索ができる、ということでしょうか?だとして、意味あるのかな。。。

このエントリーをはてなブックマークに追加

コメント/質問お待ちしています

トラックバックURL:
http://wpcms.jp/153/trackback/

CATEGORY

ARCHIVE

2017年11月
« 12月    
 1234
567891011
12131415161718
19202122232425
2627282930