如何更改首页与其他页面上显示的帖子数量?

时间:2015-11-04 作者:Beth

我试着使用这个功能,但我的主页(这是最新的帖子,不是静态的)显示了5篇帖子——其他的。

function limit_posts_per_page() {
if ( is_front_page() || is_home() )
    return 1; 
else 
    return 5;   
}

add_filter(\'pre_option_posts_per_page\', \'limit_posts_per_page\');

1 个回复
SO网友:Pieter Goosen

我不知道您新修改的代码,也找不到我之前所做的确切用例,但正如我已经说过的,您应该使用pre_get_posts 在主页上设置所需的帖子数量。

在我这样做之前,只要一个专业提示,它将为您避免调试带来的许多麻烦,请使用正确的老派语法,即花括号({})。我不知道有哪种代码编辑器支持您的语法,这使得调试成为一场噩梦。所有人都支持花括号。因此,避免使用

if ( \'something\' )
   // Do what you need to do
else
    // Do something else
并避免使用

if ( \'something\' ) :
   // Do what you need to do
else :
    // Do something else
endif;
而是使用

if ( \'something\' ) {
   // Do what you need to do
} else {
    // Do something else
}
回到问题上来,你可以试试

add_action( \'pre_get_posts\', function ( $query ) {
    if ( $query->is_home() && $query->is_main_query() ) {
        $query->set( \'posts_per_page\', 1 ); // Remove post if you only need page
    }
});