在 wordpress 循环中需要最小结果数?

Require minimum results count in wordpress loop?

是否可以在 wordpress 循环中要求最少数量的结果?如果循环 return 不够 posts,那么你显示一个占位符?

基本上,我需要在一个网格中显示 8 posts。如果 post 不足以填满所有 8 个空格,那么我想在 post 应该出现的位置显示一个灰色框。所以如果只有6个post,就会有6个post框和2个灰色的空框。看来我需要:

  1. 计算在循环中 return 编辑了多少 post
  2. 如果少于 8 post,则从 8
  3. 中减去该计数
  4. 在循环结束时添加 X 个占位符

我只是不确定 how/where 添加正确数量的占位符。 这是我得到的:

      <?php $args= array(
        'post_type' => 'beer',
        'posts_per_page' => -1
        );

        $beer2_query = new WP_Query( $args ); if ( $beer2_query->have_posts() ) : 

            $count = $beer2_query->post_count; 
            $i = 1; ?>

            <div class="row"

              <?php while ( $beer2_query->have_posts() ) : $beer2_query->the_post(); ?>

                <div class="col-sm-3">
                    <div class="card">
                        <h3><?php the_title(); ?></h3>
                    </div>
                </div>

             <?php $i++; endwhile; wp_reset_postdata(); ?>

             <?php if ($count < 8) { 
             $placeholder_count = (8 - $count);

// how do I echo out placeholder boxes that equals the placeholder_count total?

             } ?>
          </div>

          <?php endif; ?>  

谢谢!

而不是<?php if ($count < 8) { // add placeholders! } ?>

尝试<?php while($i >= 8) {// add placeholders!; $i++; }}

这样您就可以使用计数的帖子数,并添加占位符直到它等于 8。

在while循环之后不用if语句,你可以用这个代替。如果 post 计数小于 8,则循环将仅 运行 并且将 运行 但是 8 和 post 计数之间的差很多倍。您也可以删除 $i 计数器,因为它没有任何用处。

for ($x=0; $x < 8 - $count; $x++) { 
    // Insert placeholder
}