PRE_GET_POST对我的类别存档没有影响

时间:2015-02-26 作者:John Chandler

默认情况下,该站点设置为每页显示4篇文章,但在特定类别(id 76)存档上,我希望它显示12篇。我在函数中包含了这段代码。php,但它不起作用。我在这里遗漏了什么:

add_action(\'pre_get_posts\',\'filter_archive\');
function filter_archive( $query ) {
    if ( ! is_admin && is_category(\'76\') && $query->is_main_query() ) {
        $query->set(\'posts_per_page\', \'12\');    
    }
    return $query;
}

1 个回复
最合适的回答,由SO网友:Przemek Maczewski 整理而成

你有一个拼写错误,应该是:is_admin(). 应通过设置启用调试define(\'WP_DEBUG\', true); 在wp配置中。php来查看此类错误。此外,也没有必要返回任何在行动挂钩。

add_action( \'pre_get_posts\',\'filter_archive\', 1 );
function filter_archive( $query ) {
    if ( ! is_admin() && is_category(\'76\') && $query->is_main_query() )
        $query->set(\'posts_per_page\', \'12\');
}
Sidenote: 就我个人而言,在这种情况下,我更喜欢依赖slug而不是id。如果网站需要从头开始建立新的数据库,我有更多的灵活性。我还避免了开发实例和生产实例之间的不一致,因为开发实例和生产实例具有(并且应该具有)不同的数据库

结束

相关推荐