WordPress隐藏分类目录及其文章

By | 2015年4月22日

说明:代码中加了判断是否是首页(is_home()),只是在首页中隐藏某个分类,或不显示某分类中的文章。

1. 在分类目录中不显示某个分类

当一个分类被添加至一个菜单项的时候,这个分类是不应该在分类目录中显示的,因为点击菜单便可以打开该分类,显示在分类目录中没必要而且多余。

进入后台外观 –> 编辑 –> functions.php,在最下面加入下面代码(隐藏ID为1和5的分类目录):

function exclude_category($query) {
    if (is_home()) {
        $query->set('cat', '-1, -5');  // 1, 5是分类ID
    }
    return $query;
}

add_filter('pre_get_posts', 'exclude_category');

2. 首页中不显示某个分类中的文章

如果某个分类中的文章另有用途,则不希望它在首页中显示(新文章默认都会在首页显示,不管是显示在最前面还是最后面)。

方法1:后台 –>外观 –> 编辑 –> functions.php,最后面加上下面代码(过滤分类ID为1的文章):

function mk_exclude_widget_category( $cat_args ) {
    if (is_home()) {
        //这里的数组内的数字就是要排除的分类目录的id
        $cat_args['exclude'] = array(1); 
    }
    return $cat_args;
}

add_filter( 'widget_categories_args', 'mk_exclude_widget_category', 10, 1 );

方法2:后台 –> 外观 –> 编辑 –> index.php,找到下面代码:

<?php while ( have_posts() ) : the_post(); ?>

在后面加上下面语句(不显示目录1中的文章):

<?php if (in_category(array(1, 38))) continue; ?>

P.S.

1. 如何查找分类ID

站点后台 –> 文章 –> 分类目录,点击查看某个分类,浏览器地址栏中,“cat=”后面的数字便是该分类的ID。

2. 也可以安装插件来隐藏目录及其对应的文章

插件名称:Advanced Category Excluder (我没有用过)