如果帖子数不是4的倍数,则倒带循环并重复使用?

时间:2012-10-10 06:34:54

标签: wordpress loops slider

我怎样才能实现这一目标,

我有一个幻灯片,一次显示4个帖子并移动一个完整的4个帖子,我在这里遇到的问题是我在滑块中有9个帖子并且它在最后显示了一个帖子{{1} }。

如果帖子的总数不是4的倍数,我需要做的是再次回滚查询,这样如果我在循环中有9个帖子,那么它将再次重用查询并填充空白区域前三个帖子。

这是我的PHP代码:

4posts -> 4posts -> 1Post

2 个答案:

答案 0 :(得分:0)

我建议用javascript解决这个问题,幻灯片放映是用javascript构建的,所以它应该解决问题 全球步骤:

  1. 计算<li>项目
  2. 确定它是否是4个数字(使用模数或任何你想要的颜色)
  3. 复制您需要的第一个<li>并将它们追加到最后。
  4. 问题问?

答案 1 :(得分:0)

您可以随时使用WP_Query的rewind_posts方法重新开始。所以当你到达初始循环结束时,你需要弄清楚你想要添加多少帖子,并做一些额外的循环。 rewind_posts不会访问数据库,因此它不像其他查询或其他任何内容。以下是我对代码的看法:

$featured_posts = new WP_Query( ... );
while ( $featured_posts->have_posts() ) {
    $featured_posts->the_post();
    // Output your things here
}

// Do we need more posts?
if ( count( $featured_posts->posts ) % 4 > 0 && count( $featured_posts->posts ) > 0 ) {
    $more_to_go = count( $featured_posts->posts ) % 4;

    while ( true ) {
        $featured_posts->rewind_posts();
        while ( $featured_posts->have_posts() ) {
            $featured_posts->the_post();
            // Keep printing your things here

            $more_to_go--;
            if ( $more_to_go < 1 )
                break 2; // break both while loops
        }
    }
}

这是我的头脑,有多个循环,所以即使你的精选帖子只包含一个项目,它也会重复四次。我没有对此进行测试,但希望它能给你一个线索在哪里挖掘。

干杯!