サイト内検索の結果表示数について

Simplicityの特徴 フォーラム Simplicity2に関する話題何でも サイト内検索の結果表示数について

  • このトピックには5件の返信、1人の参加者があり、最後にOkusanにより10年、 3ヶ月前に更新されました。
5件の返信スレッドを表示中
  • 投稿者
    投稿
    • #41713
      Okusan
      ゲスト

      いつもお世話になっております。
      サイト内検索(googleでない標準の)についてなのですが
      現在設定内の【1ページに表示する最大投稿数】を12にしています。

      この設定でサイト内を検索すると結果も1ページにつき12記事出るのですが
      最大投稿数を1に変更すると検索結果も1ページに表示されるのが1記事になってしまいます。
      検索結果だけは12記事出るようにすることは可能でしょうか?

      お忙しいところ申し訳ありませんがどうぞよろしくお願いいたします。

    • #41716
      Hidekichi
      ゲスト

      つまりは、トップのリスト表示は1件で、検索した時の結果は12件表示にしたいということですか?

      特に聞くべき理由はないんですが、「トップのリスト表示は1件」にするとページャーが大変なことになるかと思うんですが、トップのリスト表示1件というのはどういった理由なんでしょうか?

    • #41717
      Okusan
      ゲスト

      Hidekichiさんお返事ありがとうございます。

      今までは表示スタイルを【エントリーカード】にしていましたが
      これからは【本文を表示】に変更しようと思っているので1件か2件にしたいのですが
      そうすると検索結果も少なくなってしまうのでどうしたものかと書き込ませていただきました。

    • #41718
      Hidekichi
      ゲスト

      なるほど。

      では、子テーマfunctions.phpに、

      add_action('pre_get_posts','change_item_limit');
       
      function change_item_limit($query){
       
          $new_limit = 1;
       
          if (!is_archive() && $query->is_main_query()){
              set_query_var('posts_per_page',$new_limit);
          }
      }

      とかでどうでしょうか?
      アーカイブ以外は1件、アーカイブの時はいつもどおりと言う感じです。

    • #41719
      Hidekichi
      ゲスト

      検索の時だけなら、is_search()と言うのも使えます。
      アーカイブは、カテゴリ、タグクラウドのいずれかをクリックした時に出てくるものなどです。

      !is_archive()はアーカイブでない時と言うことです。なので上記スクリプトで検索の時にアイテム数が異なる場合は、!is_search()を&&で加えると検索の時はいつも通りになるかと思います。

      つまり条件としては、入れる条件以外は1件($new_limit)で、条件の場合はいつも通りという感じになります。

      if (!is_archive() && !is_search() && $query->is_main_query())

      こういう書き方で追加できます。

    • #41780
      Okusan
      ゲスト

      Hidekichiさん、詳しく説明してくださってありがとうございます。
      最大投稿数を12件のまま、is_search()部分を含めたものを追加したところ
      無事に表示されるのはトップページは1件だけになり、検索は12件出るようになりました。
      前回も色々教えていただき、今回も本当にありがとうございます。

5件の返信スレッドを表示中
  • トピック「サイト内検索の結果表示数について」には新しい返信をつけることはできません。
スポンサーリンク
アドセンス(大)
アドセンス(大)