wordpress 修改自定义文章类型的posts_per_page

模板兔在给客户定制开发模板的过程中遇到一个需求就是自定义文章类型topic列表每页显示15条,而默认的post类型每页显示10条,在topic的archive页面先使用了以下代码:

global $query_string;
 query_posts( $query_string . '&posts_per_page=15');

发现第一页显示正常,可是其他分页就404。

后来看了官方的文档,将以下代码放进functions.php里,当然,上面的两行代码就不需要了哦。

function topic_posts_per_page($query){
    if( is_post_type_archive('topic') ) {
        $query->set('posts_per_page', 15);
    }
} 
add_action('pre_get_posts', 'topic_posts_per_page');

搞定!