如前所述,您正在对照计数器检查邮件总数。也就是说,$wp_query
是查询的总发布计数,而不是每页计数。
现在,假设查询中总共有30篇文章,每页10篇。你的计数器开始,一直到10,但是$ctr < $wp_query->found_posts - $last_no_of_posts
永远是真的。$ctr
循环结束时将为10,但是$wp_query->found_posts - $last_no_of_posts
将是30-10或20。第二页的结果也是如此,因为计数器重新开始。之后的页面也一样。在这种情况下,很多人都喜欢,$ctr
始终小于found_posts
减去你的计数器。识别最后六个结果的唯一方法是,如果所有结果都在一个页面上,则不分页。也许这就是你正在做的,这就是你想要的。
但是,如果需要标识分页的每个页面上的最后六个,则需要重写它以使用post_count
不found_posts
:
while ( have_posts() ) { the_post();
if ($ctr < $wp_query->post_count - $last_no_of_posts) {
// require special template
get_template_part( \'loop\', \'special\' );
} else {
// regular template
get_template_part( \'loop\', \'index\' );
}
$ctr++;
}
如果要在分页的最后一页上显示最后六个,则需要(未测试):
if ($wp_query->current_post >= $wp_query->found_posts - $last_no_of_posts) {