サポート » 使い方全般 » 検索結果の表示

  • <?php the_search_query(); ?>

    で検索結果を表示すると

    「○○、”××”を含む」と出ます。
    ○○・・・検索対象
    ××・・・検索条件

    これを「××」だけ表示させたい場合どうしたらよいですか?

    よろしくお願いします。

8件の返信を表示中 - 1 - 8件目 (全8件中)
  • phpの文字列として取り出す get_search_query() というのがありますので、それで取得しておいて、phpの文字列関数あたりで適当に加工するのが近道かなと思います。

    http://codex.wordpress.org/Function_Reference/get_search_query

    トピック投稿者 fantars

    (@fantars)

    V.J.Catkickさん

    ありがとうございます。explodeを使って出来たのですが、検索条件が2つ以上になると
    最初の1つめしか表示されません。もう少しでした。

    そもそも「○○、”××”を含む」を生成している場所がわかればそこで
    「○○」や「を含む」を削除したらよいと思うのですが、これはどこで
    作られているのでしょうか?

    他に方法はありますでしょうか?よろしくお願いします。

    検索結果の文字列は、WP-query()の中にコードされているようなので、ここをいじるのはリスクが大きいと思われます。preg_match()系の関数(例えば「mb_ereg_replace()」)で正規表現を使えば、「、」までと「を含む」という文字を取り除けると思います(日本語版を使ってないので、正確にどの文字と言い切れませんが)。

    それと、コアコード(つまりWordPressをインストールする時にコピーするオリジナルソース)に手を入れるのは非常に危険でお勧め出来ません。不用意なバージョンアップで簡単にコードが失われ、かつ、正常に表示出来なくなる可能性もあります。ご注意ください。

    the_search_query(); は、××の部分の検索条件しか返さないはずなので、
    検索結果のテンプレートのthe_search_query();記述部分の前後になにか
    ついていませんか?

    トピック投稿者 fantars

    (@fantars)

    V.J.Catkickさん

    ありがとうございます。コアコードに手を入れるのはやめたほうがいいのですね。
    了解です!
    preg_match()系の関数、難しそうですがやってみます。

    pfcjpさん

    ありがとうございます。
    <?php the_search_query(); ?>
    だけで、
    例)「開催年 “2011年” を含む と 開催月  “6月” を含む」
    と出てしまいます。(条件2つの場合。条件数分全てにくっついてきます)

    簡単そうなのにこんなに難しいなんて・・・。
    でも皆様相談に乗っていただいて嬉しいです。
    頑張ってみます!

    トピック投稿者 fantars

    (@fantars)

    できました!皆様ありがとうございます!

    get_search_query() とstr_replaceで出来ました。

    “2011年”の「”」がとれないですが、まずはよしとします。

    さてもう一つ問題が。
    今までのは全ての検索結果がまとめて表示されていましたが、
    検索項目「開始日」「終了日」があるとして
    各項目の検索結果を個別に取り出すことはできますか?

    よろしくお願いします。

    検索項目「開始日」「終了日」があるとして
    各項目の検索結果を個別に取り出すことはできますか?

    ここがちょっと意味が分からないのですが、get_search_query()で表示しているところから推測すると、フォーム経由で

    $search = new WP_Query($search_query);
    

    こんな感じで持ってきて表示しているのかと思います。もしそうなら、検索結果は通常のページ表示と同じようにループで表示していると思います。その場合、クエリは1つですのでループ内で条件判断して必要な項目ごと(例えば開始日)に分ける…というのが一般的かと思われます。

    もう少しスマートにやるのであれば、クエリを2つ持って(フォームの段階からフローが変わってしまうのでかなり大がかりな修正になりそう)バラバラにまわす…とか。

    前者の方が楽かな、と思いますが、条件によりますね。

    トピック投稿者 fantars

    (@fantars)

    V.J.Catkickさん

    ありがとうございます。すみません、説明不足でした。
    「custom fields search」というプラグインを入れていて、
    検索条件を複数設定しています。

    検索結果への検索条件を
    <?php the_search_query(); ?>
    で表示させています。複数条件を設定しますと

    “2011年””5月”と繋がって表示されているというわけです。

    これを
    年:2011年
    月:5月
    というふうに別々にできないかなということです。

    わかりにくくて申し訳ございません。
    お答えいただけたら助かります。

8件の返信を表示中 - 1 - 8件目 (全8件中)
  • トピック「検索結果の表示」には新たに返信することはできません。