侧边栏问题中的几个循环

时间:2011-09-17 作者:japanworm

我创建了边栏选项卡,可以显示最新的、流行的和随机的帖子。换句话说,我在侧边栏中创建了几个循环。不过,这似乎会引起一些问题。我是否必须重置某些内容,或者只是使用完全不同的代码?

侧栏选项卡的代码如下所示:

           <div id="tabvanilla" class="widget">

    <ul class="tabnav">
    <li><a href="#popular"><img src="http://zoomingjapan.com/wp-content/themes/alltuts/images/41.gif" border="0" alt="41" /> Popular</a></li>
    <li><a href="#recent">Recent</a></li>
    <li><a href="#random">Random</a></li>
    </ul>

    <div id="popular" class="tabdiv">
<ul id="popular-comments">

<?php
$pc = new WP_Query(\'orderby=comment_count&posts_per_page=5\'); ?>

<?php while ($pc->have_posts()) : $pc->the_post(); ?>
<li>
<a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_post_thumbnail(array(50,50)); ?></a>
<a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a>  <?php comments_popup_link(\'(0)\', \'(1)\', \'(%)\'); ?>
<p>Posted on <strong><?php the_time(\'F jS, Y\') ?></strong><br />
<span class="sidebar_content"><?php echo excerpt(8); ?></span></p>
</li>

<?php endwhile; ?>
<?php wp_reset_query(); ?> 
</ul>
    </div><!--/popular-->

    <div id="recent" class="tabdiv">
<ul id="recent_posts">
<?php
$rp = new WP_Query(\'orderby=date&posts_per_page=5\'); ?>

<?php while ($rp->have_posts()) : $rp->the_post(); ?>
<li>
<a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_post_thumbnail(array(50,50)); ?></a>
<a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a>  <?php comments_popup_link(\'(0)\', \'(1)\', \'(%)\'); ?>
<p>Posted on <strong><?php the_time(\'F jS, Y\') ?></strong><br />
<span class="sidebar_content"><?php echo excerpt(8); ?></span></p>
</li>

<?php endwhile; ?>
<?php wp_reset_query(); ?> 
</ul>
    </div><!--/recent-->

    <div id="random" class="tabdiv">
<ul id="random_posts">
<?php
$ranp = new WP_Query(\'orderby=rand&posts_per_page=5\'); ?>

<?php while ($ranp->have_posts()) : $ranp->the_post(); ?>
<li>
<a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_post_thumbnail(array(50,50)); ?></a>
<a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a>  <?php comments_popup_link(\'(0)\', \'(1)\', \'(%)\'); ?>
<p>Posted on <strong><?php the_time(\'F jS, Y\') ?></strong><br />
<span class="sidebar_content"><?php echo excerpt(8); ?></span></p>
</li>

<?php endwhile; ?>
<?php wp_reset_query(); ?> 
</ul>
    </div><!--random-->

    </div><!--/widget-->
当前的问题是,第一个选项卡;“流行”;显示应该显示的5篇文章,但其他2个选项卡显示6篇文章,尽管我已经清楚地对其进行了编码,因此只应显示5篇!!!!

我的网站是here 仅供参考(如果您使用IE-我希望您不要-请不要惊讶,除了上面的选项卡之外,其他选项卡都不起作用-IE中突然出现了很多问题(从昨天开始),可能是由CSS引起的,可能是一些HTML错误-目前正在处理)。

提前多谢!

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

你试过打电话吗<?php wp_reset_postdata(); ?>ehdwhile; 对于每个自定义循环?

EDIT

下一步是尝试呼叫<?php wp_reset_query(); ?> 而不是<?php wp_reset_postdata(); ?>ehdwhile; 对于每个自定义循环。

注:see here for a nice explanation of the different ways to reset the WordPress loop.

注2:问题是由标题为“在建”的贴帖引起的

结束

相关推荐

Loop inside the loop

我正在做一个项目,我需要显示一个类别中的2篇文章,还需要在这篇文章之间设置另一个循环,以显示其他类别中的随机文章列表。最简单的方法是创建3个查询,但当我为一个类别创建2个查询时,出现了一个问题,一个循环中断并显示两个帖子,第二个很好。我在第二次查询中使用了offset参数,但它不起作用。<?php $first_query_args = array( \'category_name\' => \'first-category\',&