Wordpress嵌套循环:循环两次而不是一次

时间:2013-01-30 12:00:25

标签: wordpress loops nested duplicates

我正在努力实现这个目标

Author.php

  • 作者循环:

    • 帖子循环

    • 爱好循环

    • 计划循环

author.php模板文件具有作者循环。 我需要为作者循环一些自定义帖子类型,然后我会将它们放入自己的标签中。

但是,当我在Authors循环中放入一个查询时,它会循环两次&我无法弄清楚原因。

这是我正在使用的循环:

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



            <div class="twelvecol first clearfix"><hr />


              <?php $looped = new WP_Query(array('post_type' => 'post', 'posts_per_page' => -1 ));
               if ( $looped->have_posts() ) { 
                   while ( $looped->have_posts() ) { 
                       $looped->the_post();
                       the_title();the_content();
                   }
               }
               wp_reset_postdata(); ?>
           </div>
            

    

我错过了会阻止它循环两次的东西吗?


注意:

我必须在AUTHORS LOOP中拥有这些循环,因为它们是特定于该作者的,我不希望STEVE的帖子显示在HARRY的页面上等等

  • 在整个网站生活中可能会添加和删除多位作者,因此必须是动态的,我可以在查询中包含作者

3 个答案:

答案 0 :(得分:1)

经过多次讨论并盯着屏幕看来,似乎主要的作者循环包含一个WHILE,然后在嵌套循环中,查询也有一段时间。

现在从我收集到的内容中,第一个WHILE询问作者创建了多少帖子,然后多次循环,

嵌套循环中的WHILE表现得正常。

所以我最终得到了嵌套循环中的帖子数量,由它的父级WHILE循环...

如果作者发布了5个帖子,则会有5个嵌套循环副本。

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

应该是:

<?php if ( have_posts() ): the_post(); ?> 

希望这可以帮助未来的人们解决这个问题!

答案 1 :(得分:0)

你不能像这样嵌套循环,你需要在WP_Qwery的参数上添加 检查当前作者的全局$wp_query并将其包含在WP_Query中。

这应该足以让你入门。
如果您有任何疑问或需要更多信息,请询问。

答案 2 :(得分:0)

根本不需要外部循环(循环=多次迭代)。只需将author ID作为参数添加到查询中。