Wordpress query_posts在posts_per_page上省略结果

时间:2013-05-23 23:56:54

标签: wordpress pagination

让我们在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);

干杯!

2 个答案:

答案 0 :(得分: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);

请注意,theoffset变量中的数字与每个特定页面所需的帖子数量相关。

答案 1 :(得分: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个帖子的页面,并以其他方式表达敬意。