我不确定我所经历的是一个bug(由于最近升级到3.1.2)还是糟糕的编码。自从我升级到3.1.2版以来,我的索引页上出现了两个循环的问题。
以下是我索引页的内容:
<?php
if ( ! is_paged() && is_front_page() ) {
echo \'<h6 class="sec1 title">FEATURE</h6>\';
$sticky = get_option( \'sticky_posts\' );
if ( isset( $sticky[0] ) ) {
$args = array(
\'posts_per_page\' => 3,
\'post__in\' => $sticky,
\'ignore_sticky_posts\' => 1);
$featured_query = new WP_query( $args );
while ($featured_query->have_posts() ) :
$featured_query->the_post();
get_template_part( \'content\', \'featured\' );
endwhile;
} // endif sticky
} // endif is_paged
?>
<?php
$sticky = get_option( \'sticky_posts\' );
echo \'<h6 class="sec1 title">LATEST ARTICLES</h6>\';
$paged = get_query_var( \'paged\' ) ? get_query_var( \'paged\' ) : 1;
$query_args = array(
\'posts_per_page\' => 10,
\'paged\' => $paged,
\'post__not_in\' => $sticky
);
query_posts($query_args);
if (have_posts() ) :
while (have_posts() ) :
the_post();
get_template_part( \'content\', get_post_format() );
?>
<!--<?php trackback_rdf(); ?>-->
<?php endwhile; else: ?>
<div class="box">
<p>
<?php _e( \'Sorry, no posts matched your criteria.\' ); ?>
</p>
</div>
<?php endif; ?>
// Navigation comes over here
例如,第一个循环(粘性帖子)没有分页,会产生
3 posts, 第二个循环(所有其他帖子)被分页,生成
10 posts. 我遇到的问题是,当我转到下一页时,最后一页
3 posts 从第1页的第二个循环开始,在第2页的顶部重复。
注意:第一个循环仅在第1页上,第二页不会重复,这正是我想要的。
注2:我假设第二个循环正在考虑——以某种奇怪的方式,第一个循环的帖子是它自己的。但它仍然显示第一页上的10篇文章+第一个循环中的3篇文章。
因此本质上:
PAGE 1:
循环1:3个帖子(3个独特帖子)
循环2:10个帖子(10个独特帖子)
PAGE 2:
循环1:未按预期执行,原因是
( ! is_paged() )
循环2:10篇文章(7篇独特,3篇重复于第一页的最后3篇(第二篇循环)
这就是我尝试的:我删除了( ! is_paged() && is_front_page )
条件以及整个第一个循环,问题得到了解决。
我做错了什么?