这个问题与rewind_posts()
. 同样的帖子出现在第2页的原因是因为你的模板只会显示10篇最新的帖子。这是因为您使用自己的辅助查询来显示帖子:
$args = [
\'posts_per_page\' => 10
];
$q = new WP_Query($args);
这就是您的模板显示的查询,当您在第2页时,没有任何信息告诉它查询第二页的帖子。
问题是在家里。不应使用phpnew WP_Query()
为循环查询帖子。WordPress已经为您查询了正确的帖子,您可以使用The Loop.
您复制的解决方案之所以使用它,是因为它回答的原始问题显然是关于在静态主页模板上显示这些帖子,而该模板尚未查询到正确的帖子,因此不需要分页。
此外,原始答案使用的原因rewind_posts()
这是因为它似乎是为了无序显示不同组的帖子。那不是你想要的。您只需分别显示第一篇帖子,然后显示其余帖子,而不必重新显示第一篇帖子。
考虑到所有这些,正确的解决方案是使用此结构:
global $wp_query;
while ( have_posts() ) {
the_post();
// If we\'re on the first post.
if ( 0 === $wp_query->current_post ) {
// Display post as banner.
break;
}
}
// Display separator, open grid, etc.
while ( have_posts() ) {
the_post();
// Display post as card.
}
understrap_pagination();