这种行为的原因很简单。首先你必须知道get_posts
使用WP_Query
获取帖子。
那么,让我们看看WP\\u查询实现。在…上line 1998 of query.php 您可以找到:
if ( $q[\'posts_per_page\'] == -1 ) {
$q[\'nopaging\'] = true;
然后开始
line 2544 of query.php 您会发现:
if ( empty($q[\'nopaging\']) && !$this->is_singular ) {
$page = absint($q[\'paged\']);
if ( !$page )
$page = 1;
if ( empty($q[\'offset\']) ) {
$pgstrt = ($page - 1) * $q[\'posts_per_page\'] . \', \';
} else { // we\'re ignoring $page and using \'offset\'
$q[\'offset\'] = absint($q[\'offset\']);
$pgstrt = $q[\'offset\'] . \', \';
}
$limits = \'LIMIT \' . $pgstrt . $q[\'posts_per_page\'];
}
这是唯一增加帖子限制的部分。而且,正如您所看到的,只有当
nopaging
未设置。所以如果
posts_per_page
设置为-1,则不会添加SQL查询的分页部分。
那么你能做些什么来解决这个问题呢?您可以设置numberofposts
到某个大的正数。