在$queryObject之后继续循环

时间:2016-08-01 作者:Terrell Anderson

嗨,我正在使用下面的代码显示来自特定标签的五篇文章。此外,代码还允许我将第一篇帖子与接下来的四篇不同。

<?php
$queryObject = new  Wp_Query( array(
\'showposts\' => 5,
\'post_type\' => array(\'post\'),
\'tag_slug__and\' => array(\'featured-music\'),
\'orderby\' => 1
));
$i = 0;
$class = array("first-post", "posts-below");
while ( $queryObject->have_posts() ) {
    $queryObject->the_post();
    if ( $i == 0 ) { ?>
        <div class=<?php echo $class[0]; ?>>
            <a href="<?php the_permalink(); ?>" title="<?php printf(__( \'Read %s\', \'wpbx\' ),     wp_specialchars(get_the_title(), 1)) ?>">
                <?php the_post_thumbnail(\'sidethumbs\'); ?>
            </a>
        </div>
    <?php 
         $i++;
     } else { ?>
        <div class=<?php echo $class[1]; ?>>
            <a href="<?php the_permalink(); ?>" title="<?php printf(__( \'Read %s\', \'wpbx\' ),     wp_specialchars(get_the_title(), 1)) ?>">
                <?php the_post_thumbnail(\'sidethumbs\'); ?>
                <?php the_title(); ?>    
            </a>
        </div>
    <?php $i++;
 } 


} ?>
这段代码放在一个名为“hot music.php”的模板文件中。我在第8篇和第9篇文章之间,在我的主索引文件中调用模板页面的输出。

现在我遇到的问题是,“hot music.php”文件中的最后一篇文章在主索引循环中重复了自己。它以某种方式将常规循环中的第9篇文章替换为“hot music.php”模板中的最后一篇文章。

下面是如何设置我的循环-->https://gist.github.com/mihadaiko/dc314a845f807c16d19db8c842ed7a75

下面是我如何通过调用它所在的模板页面来插入上面的代码。

 <?php elseif (8 < $count && $count <= 17 && $paged === 1) :
       if ($count === 9) echo \'<div style="clear:both;"></div><div class="row div-break-first" style="margin:10px 0px 50px 0px;">\' ,get_template_part(\'hot\',\'music\'), \'</div>\'; ?>
但出于某种奇怪的原因,它使我的常规循环偏离了一个计数。正常的帖子应该在这段代码之后按顺序继续,但相反,上面循环中的最后一篇帖子在我的主索引循环中又重复了一次。这有解决办法吗。

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

您没有包括wp_reset_postdata(); 在while循环之后。

相关推荐

WordPress Custom Post Loop

我正在尝试循环浏览自定义WordPress帖子,遇到了一个问题,比如我添加了自定义字段并想在中显示它<li> 使用循环。我成功地完成了操作,但数据/链接/类别正在重复,如果类别与以下内容相同,我希望只显示一次:如果我有2篇带有data1类别的帖子,那么链接将只显示data1once 但我有2个不同类别的帖子,然后它会分别显示每个帖子。Sample Code:<ul class="filter filter-top"> <li cla