質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.50%

  • PHP

    20775questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

  • WordPress

    7406questions

    WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

  • CMS

    161questions

    CMS(Content Management System)は複数のユーザーでコンテンツを編集することが可能なWebサイトの管理/構築用のプラットフォームを指します。また、会社単位で運用管理するものはECMと呼びます。

wordpress:search.phpの検索結果一覧の表示数が一記事しか表示されない問題に直面しています。

解決済

回答 5

投稿 編集

  • 評価
  • クリップ 1
  • VIEW 2,556

makoto-n

score 339

wordpressで検索結果が1ページに1記事しか表示できないのですが、
(検索数は複数になっているので次ページには行けたりします)
このソースのどこを書き変えれば複数の記事(一覧と同じ記事数、またはsearch.phpで決定)を一覧に表示できますか?

search.phpの内容

<?php get_header(); ?>
  <h3 class="search"><?php the_search_query(); ?>」の検索結果&ensp;:&ensp;<?php echo $wp_query->found_posts; ?></h3>
  <?php
    if (have_posts() && get_search_query()) :
      while (have_posts()) :
        the_post();
        get_template_part('each_exrpt_post');
      endwhile;
  ?>
      <div id="post-<?php the_ID(); ?>" class="post img-left clearfix">
        <a href="<?php the_permalink() ?>" class="thumbnail">
          <?php thumbnail_check($post->ID,'size'); ?>
        </a>
        <div class="section">
          <h4><a href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>"><?php echo get_the_title(); ?></a></h4>
          <div class="post-meta"><span class="post-date"><?php echo get_the_date(); ?></span><span class="category"><?php the_category(', ') ?></span></div>
          <div class="article">
            <?php if (is_search()) {
              the_excerpt();
              } else {
                the_content();
              }
            ?>
          </div>
        </div>
      </div>
    <?php if ( $wp_query -> max_num_pages > 1 ) : ?>
      <div class="pager"><?php next_posts_link('&laquo;&ensp;古い記事'); previous_posts_link('新しい記事&ensp;&raquo;'); ?></div>
    <?php endif; ?>
    <!-- /pager -->
  <?php else: ?>
    <div class="section">
      <h4>記事はありません</h4>
      <p>お探しの記事は見つかりませんでした。</p>
    </div>
  <?php endif; ?>
<?php get_sidebar(); ?>
<?php get_footer(); ?>

ここが問題になっている気がするんですが違いますか?

<?php
    if (have_posts() && get_search_query()) :
      while (have_posts()) :
        the_post();
        get_template_part('each_exrpt_post');
      endwhile;
  ?>

解決していないため、追記します。
ソースは簡略にしたところこういった感じです。

<?php get_header(); ?>
  <p class="search"><?php the_search_query(); ?>」の検索結果</p>
  <?php
    if (have_posts() && get_search_query()) :
      while (have_posts()) :
        the_post();
        get_template_part('each_exrpt_post');
      endwhile;
  ?>
      <div id="post-<?php the_ID(); ?>" class="">
        <div class="section">
          <h4><a href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>"><?php echo get_the_title(); ?></a></h4>
      </div>
    <?php if ( $wp_query -> max_num_pages > 1 ) : ?>
      <div class="pager"><?php next_posts_link('&laquo;&ensp;古い記事'); previous_posts_link('新しい記事&ensp;&raquo;'); ?></div>
    <?php endif; ?>
    <!-- /pager -->
  <?php else: ?>
    <div class="section">
      <p>お探しの記事は見つかりませんでした。</p>
    </div>
  <?php endif; ?>
<?php get_sidebar(); ?>
<?php get_footer(); ?>


↑search.php

//function.phpに特定の記事を検索結果に出さないように追記
function fb_search_filter($query) {
  if ( !$query -> is_admin && $query -> is_search) {
    $query -> set('post__not_in', array(43, 27, 9, 85, 7, 64, 31, 36, 73, 5,) );
  }
  return $query;
}
add_filter( 'pre_get_posts', 'fb_search_filter' );


↑functions.php

すみません、長々となってしまいましたが助言をください。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 5

+3

確認しておきたいことがあるのですが、ご自身のwordpressの設定(添付してある画像の赤枠の中)は表示したい件数になっていますか?

イメージ説明

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/05/11 17:13

    はい。
    なってます。

    キャンセル

check解決した方法

0

<?php /* Template Name:  */ get_header(); ?>
  <p class="search"><?php the_search_query(); ?>」の検索結果&ensp;:&ensp;<?php echo $wp_query->found_posts; ?></p>
  <?php if (have_posts()) : while (have_posts()) : the_post(); ?>
      <div id="post-<?php the_ID(); ?>" class="post img-left clearfix">
        <article>
          <div class="section">
              <a href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>">
                <?php thumbnail_check($post->ID,'size'); ?>
              </a>
              <h3><a href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>"><?php echo get_the_title(); ?></a></h3>
              <div class="post-meta"><span class="post-date"><?php echo get_the_date(); ?></span><span class="category"><?php the_category(', ') ?></span></div>
              <div class="breadcrumbs"><?php if(function_exists('bcn_display')) { bcn_display(); }?></div>
              <div class="article">
                <?php if (is_search()) {
                  the_excerpt();
                  } else {
                    the_content();
                  } ?>
              </div>
          </div>
        </article>
      </div>
    <?php endwhile; ?>
    <?php if ( $wp_query -> max_num_pages > 1 ) : ?>
      <div class="pager"><?php next_posts_link('&laquo;&ensp;古い記事'); previous_posts_link('新しい記事&ensp;&raquo;'); ?></div>
    <?php endif; ?><!-- /pager -->
<?php else: ?>
    <div class="post">
        <p>申し訳ございません。</p>
        <p>該当する記事がございません。</p>
    </div>
<?php endif; ?>
<?php get_sidebar(); ?>
<?php get_footer(); ?>

ほぼ全文です。
これで解決しました。
ありがとうございました。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/07/27 11:58

    結局どこが問題だったのですか?

    キャンセル

  • 2016/07/27 12:08

    他のサイトをみつつやったのでこれと言えませんが、endwhileと思います。
    エラーログでもendwhileが出ていましたので。

    エラーログを記載すればもう少し早く解決したかもと思います。
    次回からはそうしようと

    キャンセル

  • 2016/07/27 12:10

    あぁ、たしかに位置がおかしかったですね。
    コメントありがとうございます!

    キャンセル

0

こんにちは。

たとえば、10件の検索結果を表示したい場合には、

<?php
if (have_posts() && get_search_query()) :
  while (have_posts()) :
   the_post();
   get_template_part('each_exrpt_post');
  endwhile;
?>

の直前に

<?php query_posts($query_string.'&posts_per_page=10'); ?>

を記述してください。

なお、表示する件数は、ご自身のサイトのレイアウトなどにあわせて調整してください。

以上、ご参考いただければ幸いです。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/05/11 17:29

    ありがとうございます。
    しかしなりません、、。

    キャンセル

  • 2016/05/12 08:56

    お役にたてず失礼しました。

    キャンセル

  • 2016/05/12 17:30

    いいえありがとうございます。

    キャンセル

0

functions.phpに表示件数を設定する記述はありませんか?

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/05/11 17:20

    functions.phpには表示数を設定する記述はしていません。

    キャンセル

0

'posts_per_page' を設定してみました?

//function.phpに特定の記事を検索結果に出さないように追記
function fb_search_filter($query) {
  if ( !$query -> is_admin && $query -> is_search) {
    $query -> set('post__not_in', array(43, 27, 9, 85, 7, 64, 31, 36, 73, 5,) );
    $query -> set('posts_per_page', 30);
  }
  return $query;
}
add_filter( 'pre_get_posts', 'fb_search_filter' );

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/07/27 11:36

    していないですが、解決しました!
    ありがとうございます。

    キャンセル

関連した質問

同じタグがついた質問を見る

  • PHP

    20775questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

  • WordPress

    7406questions

    WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

  • CMS

    161questions

    CMS(Content Management System)は複数のユーザーでコンテンツを編集することが可能なWebサイトの管理/構築用のプラットフォームを指します。また、会社単位で運用管理するものはECMと呼びます。

  • トップ
  • PHPに関する質問
  • wordpress:search.phpの検索結果一覧の表示数が一記事しか表示されない問題に直面しています。