在设置的时间间隔内执行多个循环,其间包含代码

时间:2017-01-18 作者:cchiera

下面列出了最新的5篇博客文章,然后显示一则广告,然后继续列出其余的博客文章。

while ( have_posts() ) :
    the_post();

    if( 5 > $wp_query->current_post ):
        the_title();
    else :
        break;
    endif;

endwhile;

echo \'My Ad\';

while ( have_posts() ) :
    the_post();

    the_title();

endwhile;
尝试更新它,以便它先发布5篇文章,广告,然后是“4”篇文章,然后是另一篇广告,然后是其余的文章。到目前为止没有运气。下面是我试过的。它显示前5条最新帖子,显示广告,但当它开始显示接下来的4条最新帖子时,不幸的是,它跳过了第6条帖子,从第7条帖子开始。同样,在第二个广告之后,而不是继续其余的帖子,它再次开始循环。

            <?php while ( have_posts() ) :
                    the_post();

                    if( 5 > $wp_query->current_post ): ?>
                     <?php the_title(); ?>
              <?php else :
                        break;
                    endif;

                  endwhile; ?>

                 Fixed Graphic

                 <?php while ( have_posts() ) :
                         the_post();

                         if( 10 > $wp_query->current_post ): ?>
                             <?php the_title(); ?>
                  <?php else :
                             break;
                         endif;

                       endwhile; ?>

                  Fixed Graphic

                 <?php // remaining posts
                    while ( have_posts() ) :
                        the_post();

                        the_title();

                    endwhile; ?>

1 个回复
SO网友:theodorhanu

正如法典所述,have\\u posts开始、逐步完成或停止循环。check codex here. 在您的代码中,当输入第二个或第n个while时,posts循环已经开始,因此它会跳转到下一个post,这就是为什么它跳过第6个元素并在最后一个while循环上重新开始。我建议您在else-break分支中包含您的广告代码。

相关推荐

Increase offset while looping

我正在编写一个自定义帖子插件,它将自定义帖子分组显示为选项卡。每组4个岗位。是否可以编写一个偏移量随每次循环而增加的查询?因此,结果将是:-第一个查询显示从1到4的帖子-第二个查询显示从5到8的帖子-第三个查询显示从9到12的帖子等。 <div class=\"official-matters-tabs\"> <?php $args = array(\'post_type\' => \'official-matters\', \'showp