1. ホーム
  2. wordpress

[解決済み] posts_per_page 3件ではなく1件しか表示されない

2022-02-25 10:45:09

質問

最近のブログの記事を表示するループがあります。問題は posts_per_page は、3つの投稿ではなく、1つの投稿しか表示しません。 どこで間違っているのかがわかりませんでした。

私は次の手順を試してみましたが、私には役に立ちませんでした。

ignore_sticky_posts = > true, 
update_post_term_cache=>false, 
nopaging=>true 

というコードです。

<section class="ftco-section" id="blog-section">
  <div class="container">
    <div class="row justify-content-center mb-5 pb-5">
      <div class="col-md-7 heading-section text-center ftco-animate">
        <h1 class="big big-2">Blog</h1>
        <h2 class="mb-4">Our Blog</h2>
        <p>Far far away, behind the word mountains, far from the countries Vokalia and Consonantia</p>
      </div>
    </div>
    <div class="row d-flex">
    <?php if (have_posts()) :
    while (have_posts()) :the_post(); ?>
      <div class="col-md-4 d-flex ftco-animate">
        <div class="blog-entry justify-content-end">
          <a href="<?php the_permalink(); ?>" class="block-20" style="background-image: url('<?php echo get_the_post_thumbnail_url(get_the_ID()); ?>');">
          </a>
          <div class="text mt-3 float-right d-block">
            <div class="d-flex align-items-center mb-3 meta">
                <p class="mb-0">
                    <span class="mr-2">June 21, 2019</span>
                    <a href="#" class="mr-2">Admin</a>
                    <a href="#" class="meta-chat"><span class="icon-chat"></span> 3</a>
                </p>
            </div>
            <h3 class="heading"><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3>
            <p><?php echo wp_trim_words(get_the_excerpt(), 30); ?></p>
          </div>
        </div>
      </div>
     <?php endwhile; ?>
     <?php endif; ?>
    </div>
  </div>
</section>

ループのやり方はこれでいいのでしょうか? 私が得ている問題は、今私はブログの記事のいずれかを参照してくださいされていないことです。

解決方法は?

あなたのコードを見る限りでは、コンテンツは while ループを使用します。また、クエリ引数の配列を $wp_query->query であり、それらは異なるものです。使いたいのは $wp_query->query_vars

この先を読む前に、必ず以下のリンク先をご覧ください。

query_posts() のドキュメント

ループのドキュメント

あなたのコードは次のようなものであるべきです。

<?php
global $wpdb;

$args = array(
  'post_type' => 'post',
  'orderby' => 'date',
  'order' => 'DESC',
  'posts_per_page' => 3,
);

$this_query = new WP_Query( $args );

?>

<section class="ftco-section" id="blog-section">
  <div class="container">
    <div class="row justify-content-center mb-5 pb-5">
      <div class="col-md-7 heading-section text-center ftco-animate">
        <h1 class="big big-2">Blog</h1>
        <h2 class="mb-4">Our Blog</h2>
        <p>Far far away, behind the word mountains, far from the countries Vokalia and Consonantia</p>
      </div>
    </div>
    <div class="row d-flex">
      <?php if ( $this_query->have_posts() ) : ?>
        <?php while ( $this_query->have_posts() ) : $this_query->the_post(); ?>
          <div class="col-md-4 d-flex ftco-animate">
            <div class="blog-entry justify-content-end">
              <a href="<?php the_permalink(); ?>" class="block-20" style="background-image: url('<?php echo get_the_post_thumbnail_url(get_the_ID()); ?>');">
              </a>
              <div class="text mt-3 float-right d-block">
                <div class="d-flex align-items-center mb-3 meta">
                    <p class="mb-0">
                        <span class="mr-2">June 21, 2019</span>
                        <a href="#" class="mr-2">Admin</a>
                        <a href="#" class="meta-chat"><span class="icon-chat"></span> 3</a>
                    </p>
                </div>
                <h3 class="heading"><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3>
                <p><?php echo wp_trim_words(get_the_excerpt(), 30); ?></p>
              </div>
            </div>
          </div>
        <?php endwhile; 
        wp_reset_postdata();
      else : ?>
        <p><?php esc_html_e( 'Sorry, no posts found.' ); ?></p>
      <?php endif; ?>
    </div>
  </div>
</section>