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

时间:2017-06-28 21:20:28

标签: php wordpress foreach counter

在wordpress循环中是否可以要求最少数量的结果?如果循环没有返回足够的帖子,那么你显示一个占位符?

基本上,我需要在网格中显示8个帖子。如果没有足够的帖子来填充所有8个空格,那么我想显示一个帖子应该是的灰色框。因此,如果只有6个帖子,则会有6个帖子框和2个灰色空盒子。好像我需要:

  1. 计算循环中返回的帖子数
  2. 如果帖子少于8个,则从8
  3. 中减去该计数
  4. 在循环结束时添加X个占位符
  5. 我只是不确定如何/在哪里添加正确数量的占位符。 这就是我所拥有的:

          <?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; ?>  
    

    谢谢!

2 个答案:

答案 0 :(得分:0)

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

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

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

答案 1 :(得分:0)

不是在while循环之后使用if语句,而是可以用它替换它。循环仅在帖子计数小于8时运行,并且将运行8次和后计数之间的差异很多次。您也可以删除$ i计数器,因为它不会用作目的。

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