如何使用CURRENT_POST每五个帖子打开一个新的无序列表

时间:2014-06-10 作者:Gram3000

如何在显示了5篇文章后动态添加一个中断以创建一个文章标题列表?

<div class="col-sm-2">
          <ul>
            <?php
                $args = array( \'post_type\' => \'custom-post-type\' );
                $query = new WP_Query( $args );

                  if ( have_posts() ) : while ( $query ->have_posts() ) : $query ->the_post();
                  ?>

            <li><?php the_title(); ?></li>

                <?php $query_count = $query ->current_post + 1; ?>
                <?php if ( $query_count % 5 == 0): ?>

          </ul>
        </div>
        <div class="col-sm-2">
          <ul>

              <?php endif; ?> 

           <?php endwhile; endif; wp_reset_postdata(); ?>
          </ul>
        </div>
目前,前10个帖子显示正确,其余帖子不显示。在前两个div之后有一个空的第三个div元素,但没有post。我看不出我错过了什么。感谢您的反馈。

1 个回复
最合适的回答,由SO网友:engelen 整理而成

你基本上是在检查( $query->current_post + 1 ) % 5 == 0. 对于最后一篇文章,其中$query->current_post 等于9, 这也会返回true,如下所示10 % 5 等于0. 因此div 和aul 输出。

您可以通过检查是否还有任何帖子要显示(使用$query->post_count, 显示的帖子数):

if ( $query_count % 5 == 0 && $query_count < $query->post_count )

结束

相关推荐

Vimeo Froogaloop API,在小提琴中工作,但不能在WP中工作

我试图利用Vimeo的Froogaloop API,在用户单击某个元素时暂停视频嵌入。我让它在my Fiddle 但它在我的Wordpress环境中不起作用。我从this thread 创建我正在处理的网站的简化版本;HTML<div id=\"player1\" class=\"col\"> <div class=\"vid\"> <iframe src=\"//player.vimeo.com/video/75817361?titl