0

让我们看看我的 Wordpress 页面上的事实:

设置>阅读>中的默认配置最多显示:12个帖子

我想要的是

  • 主页,第 1 页,9 个帖子

  • 主页,第 2 页以上,12 个帖子

在第 1 页中,我收到了第 1 到 9 个帖子(总共 9 个)。在第 2 页,发布 13 至 24(共 12 个)。帖子 10、11 和 12 被省略了,不知道为什么。

我在循环之前的代码:

$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;

if ($paged == 1) { $numposts = 9; }
elseif ($paged > 1) { $numposts = 12; }

query_posts('posts_per_page='.$numposts.'&paged='.$paged);

干杯!

4

2 回答 2

1

终于找到了答案:http ://wpdevelopertips.com/different-number-of-posts-in-pagination-pages/

我需要:

第 1 页:帖子 #1 到 #9(共 9 个)

第 2 页:帖子 #10 到 24(共 12 个)

第 2 页:12 篇文章及...

所以,在循环之前:

$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;

if ($paged == 1) { $numposts = 9; $theoffset = "";}
elseif ($paged > 1) { $numposts = 12; $theoffset = 9 + ($paged - 2) * 12;}

query_posts('showposts='.$numposts.'&paged='.$paged.'&offset='.$theoffset);

请注意,offset 变量中的数字与我想要的每个特定页面的帖子数量有关。

于 2013-09-19T18:38:55.087 回答
0

我猜一下:对于第一页,参数是

?posts_per_page=9&paged=1

对于第二页:

?posts_per_page=12&paged=2

我猜想 Wordpress 使用以下内容(伪代码)来确定要包含在页面中的帖子。(无论如何,这就是我会做的。)

first_on_page = posts_per_page * (paged - 1) + 1
last_on_page = first_on_page + posts_per_page - 1

第一个包含 9 个帖子的页面(您的第 1 页)将包含帖子 1-9。第二个 12 帖子页面(您的第 2 页)将包含帖子 13-24。

就是问题发生的原因。至于修复,我不是 Wordpress 大师,所以我只能建议在任何地方使用 12-post 页面并以其他方式表达敬意。

于 2013-05-24T00:23:07.157 回答