サポート » プラグイン » [WP Custom Fields Search] で全角スペースでも検索できるようにしたい

  • 解決済 syoshin

    (@syoshin)


    WP Custom Fields Search を使用して、複数ワードを入力する際、全角スペースで区切るとNotFoundになってしまいます。

    半角スペースで区切れば問題なく検索できるのですが、訪問者の方にいちいち 全角入力→半角→全角入力→半角→全角入力 などと切り替えて入力してもらうのは面倒だと思うので、どうにかこれを全角スペースでも検索できるようにできませんでしょうか?

    ちなみにwordpressのバージョンは 2.9
    プラグインは最新版0.3.16 です。

    よろしくお願いいたします。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • モデレーター jim912

    (@jim912)

    syoshinさん、こんにちは。

    試した訳ではないので想定どおり動作するか分かりませんが、$_GET[‘s’](必要に応じて$_POST[‘s’]も)の全角スペースを半角スペースに置換させれば全角でも動作するのではないかと思われます。

    スレッド開始 syoshin

    (@syoshin)

    jim912様
    返信ありがとうございます。

    $_GET[‘s’](必要に応じて$_POST[‘s’]も)の全角スペースを半角スペースに置換させれば

    とは、どのファイルを修正すればよいのでしょうか?

    一応プラグインのphpファイル全部をテキストエディタで$_GET['s']と$_POST['s']を検索してみましたが見つかりませんでした。

    $_POSTだけで検索すればいくつかヒットしたのですが['s']の部分はありませんでした。

    もしかしたら、全然的外れなことをしているのでしょうか?
    すみません、初心者なもので…。

    例えばBookというカテゴリーで「犬」「白」「子」で検索した時

    半角スペースで検索した場合
    http://example.com/?search-class=DB_CustomSearch_Widget-db_customsearch_widget&widget_number=preset-1&post_content-0=book&cs-all-1=犬+白+子&search=検索

    全角スペースで検索した場合
    http://example.com/?search-class=DB_CustomSearch_Widget-db_customsearch_widget&widget_number=preset-1&post_content-0=book&cs-all-1=犬 白 子&search=検索

    という風に、全角スペースだと「犬 白 子」でひとつの言葉になってしまっているようです。

    モデレーター jim912

    (@jim912)

    syoshinさん、こんにちは。

    WP Custom Fields Searchだと、検索テキストの入力フォーム名が変わるのですね。
    一応、上記の例だとcs-all-1というキーで検索文字列が送信されてくるので

    function replace_double_byte_space_cs_query_string() {
    	$_REQUEST['cs-all-1'] = str_replace( ' ', ' ', $_REQUEST['cs-all-1'] );}
    add_action( 'init', 'replace_double_byte_space_cs_query_string' );

    をテーマのfunctions.phpに追記すれば、全角スペースでもヒットするはずです。

    ただし、上記はca-all-1の場合しか対応させていませんので、他のプリセットなどにも対応させるには、もう少し工夫が必要になります。

    スレッド開始 syoshin

    (@syoshin)

    jim912様

    ありがとうございます!
    上記のコードで全角スペースでも検索できるようになりました。

    WP Custom Fields Searchだと、検索テキストの入力フォーム名が変わるのですね。

    そうなんです。WP標準のフォームとは別でWP Custom Fields Searchの検索結果の表示はindex.phpにされるので(search.phpも参照しているようですが)通常の検索とWP Custom Fields Searchの検索結果の表示の仕方を変えたりして使い分けています。

    プリセットも条件によってどんどん増やせるのですが、今のところは単なる趣味のサイトなので1つのプリセットだけでも十分だと思うので今回はこれで解決済みとさせていただきます。

    今後、訪問者の方から要望があればもっと細かく指定したフォームを設置するかもしれませんが…。

    その時はまた改めて質問させていただだこうと思います。

    この度は本当にありがとうございました。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • トピック「[WP Custom Fields Search] で全角スペースでも検索できるようにしたい」には新たに返信することはできません。