wordpress首页如何实现分类显示文章

想在首页只显示指定分类的文章,在网上找到的方法是

<?php while( have_posts()): the_post();update_post_caches($posts);?> 
<?php if(in_category('diary')):?> 
<div class="post"> 
……循环体结构代码……
</div> 
<?php endif;?> 
<?php endwhile;?>
<?php pagination($query_string); ?>

但是我的首页是一页显示一篇文章,采用这个方法的话,如果我有四篇文章,两篇是diary类,两篇不是该类,首页虽然的确显示了diary类的文章,但是页码显示是有4页,请问这个页码问题怎么解决?

阅读 5.1k
1 个回答

应该这样:

add_action( 'pre_get_posts', 'wpdit_pre_get_posts' );
function wpdit_pre_get_posts( $wp_query ) {
    if ( is_home() || is_front_page() ){
        $wp_query->set( 'category__in', array(1) );
    }
    return $wp_query;
}

你的需求是“首页只显示指定分类的文章”,所以要事先在首页只获取指定分类下的文章;
而非提出全部文章再去判断哪个该在首页显示或不显示。

推荐问题