IS_HOME和IS_FrontPage始终为真

时间:2015-09-25 作者:wp902

我试图限制主页上的帖子数量,但is\\u home()和is\\u frontpage()似乎总是返回true(即使是在浏览/page/2/、/page/3/等时)。

我基本上复制了“215”主题,并试图在此基础上创建自己的主题。我删除了函数中的每个函数。php(还删除了对这些函数的任何调用),目前我只在其中包含此函数:

add_action( \'pre_get_posts\', \'limit_frontpage_posts\' );

function limit_frontpage_posts( $query ) {

    if ( is_front_page() || is_home() ){
        $query->set( \'posts_per_page\', 1 );
    }

  return $query;
}
基本上,我想在frontpage和其他页面上发布一篇文章,无论管理面板中设置了什么限制。上面的代码在每个页面上只显示一篇文章。知道怎么了吗?

1 个回复
SO网友:Milo

没什么错,你主页的第二页仍然是你的主页。如果要检查它是否只是第一页,请检查! is_paged().

这就是说,你不能只更改每页的帖子并使其正常工作,因为当你在第二页及以后,它开始的帖子是根据当前每页的帖子数计算的-WordPress不知道你的第一页只有一篇帖子,第二页应该从第2页开始,它只会将每页的帖子数乘以页码,因此帖子将被跳过。

See this answer for an explanation and solution.