WordPress动态首页是默认显示所有文章的,按时间排序,但是有时候想让某个分类文章不在主页显示而是在特定的分类页面显示,有的写的是一些生活杂记及网络新闻,但博客是有着它自己的中心关键词的;一般我们都想让首页突出的地方显示我们博客核心内容;比如我想做一个类似QQ说说,人人状态的页面,发布的posts一般很短,不宜显示在首页,这时就要让首页不显示特定分类文章。
如大家所见,本博首页已经不显示关于Wordpress的文章了(为了要照顾广大读者朋友们)。当然其实 WordPress 让某分类文章不显示在首页的方法很简单:一是用插件,如 Advanced Category Excluder;二是用本文提到的代码。
方法一:首页排除特定分类方法
1、首先需要获取特定分类的ID。这个ID号可以在后台的“文章 -> 分类目录”中获取,当鼠标放到某个分类目录时,浏览器底部的状态栏会显示类似“category&tag_ID=2&post_type=post”这样的链接,其中的“2”就是这个分类的ID。
2、修改首页调用文章的模板
首页一般为使用的主题目录下index.php文件,打开编辑,找到类似如下代码:
<?php if (have_posts()) : ?><?php while (have_posts()) : the_post(); ?>
修改为(2为要排除的分类):
<?php if ( have_posts() ) : query_posts($query_string .'&cat=-2'); while ( have_posts() ) : the_post(); ?>
部分主题此方法无效,可使用以下第二种方法。
方法二:直接添加到function.php文件中
代码第三行中的数字就是分类的ID,修改下即可。(梦飞扬采用的是此方法)
function exclude_category_home( $query ) { if ( $query->is_home ) { $query->set( 'cat', '-5, -34' ); } return $query; } add_filter( 'pre_get_posts', 'exclude_category_home' );