北极寒流 » 网络资源 » 在首页和feed里排除某个分类下的文章 - 2013.10.10

在首页和feed里排除某个分类下的文章

WordPress在首页和feed里排除某个分类下的文章,并不是采用自建my_query之类的方法,意思是首页输出文章依然采用if(have_posts()) : while(have_posts()) : the_post();这样的形式。而不是$my_query->have_posts()之类的样子。

在首页和feed里排除某个分类下的文章

只需要把如下内容扔进functios.php文件里即可:

function some_cat_exclude($query) {
    if ($query->is_feed || $query->is_home) {
        $query->set('cat','-1,-2,-3,-4');
    }
    return $query;
}
add_filter('pre_get_posts','some_cat_exclude');

解释:第二行的is_feed,is_home都是用来判断适用场合的,这里选择了feed和home都不输出。
如果你想改改其实很简单:如果想在搜索结果中排除用is_search;存档页面中排除用is_archive;其他场合类推或查询官方文档~~

扩展

我因为想把某篇老文章排除掉,让它隐藏起来,但是不想改变标题地址(因为某个分类下还有其他文章,不想再改变它的固定链接地址),所以,可以新建了一个作者,然后把这篇文章给该作者,然后类似上面的方法,把$query->set('cat','-1,-2,-3,-4');改成$query->set('author',-xxx);

资料来源:http://axiu.me/learning_notes/exclude-cat-from-feed-and-homepage/

10

在首页和feed里排除某个分类下的文章

分享到: