北极寒流 » 网络资源 » WordPress不同分类显示不同文章数量 - 2014.10.19

WordPress不同分类显示不同文章数量

在WordPress中,有时候我们希望不同的分类显示的文章数量不同,或者说比如首先显示10篇最新文章,其他的搜索页、标签页、分类页以及时间索引页却要显示20篇文章,那么下面的代码就对你有用了。

注:默认情况下,wordpress页面显示文章数量是在后台设置中阅读设置修改显示的,并且全站都是统一数量的。有时候我们为了出于需要,要让不同页面显示不同的文章篇数量,那么只要把下面代码加入functions.php中即可(代码中整合了首页排除制定分类,如果你不需要,删除相关代码即可)。

function custom_posts_per_page($query){  
if(is_home()){  
$query->set('posts_per_page',8);//首页每页显示8篇文章
    }  
if(is_search()){  
$query->set('posts_per_page',-1);//搜索页显示所有匹配的文章,不分页
    }  
if(is_archive()){  
$query->set('posts_per_page',25);//archive每页显示25篇文章
}

if ( $query->is_home ) { //首页排除指定分类id为1,3
    $query->set( 'cat', '-1, -3' );
}
if( is_category(array(1,3)) ){
    $query->set('posts_per_page',20);//指定id为1,3的分类显示20篇文章

}  
add_action('pre_get_posts','custom_posts_per_page'); 

下面的代码可以实现WordPress在首页显示或只显示自定义文章类型。

function uctheme_posts_per_page($query){
//首页或者搜索页的主循环
if ( (is_home() || is_search()) && $query->is_main_query() )
//$query->set( 'post_type', array( 'product' ) ); //只显示product
$query->set( 'post_type', array( 'post', 'product' ) ); //主循环中显示post和product
return $query;
}
add_action('pre_get_posts','uctheme_posts_per_page');

发表评论 【登录·注册】

所有留言都会被审核,请勿发布垃圾评论!

(必填)*