WordPress 自动生成的 RSS Feed 是默认输出每个目录分类下的每一篇日志的,但有时,我们想唠叨下又不想打扰到关注有意义信息的订阅者,怎么办呢?只需要把唠叨的日志归类到一个分类,然后在 Feed 里让该分类下日志不显示就 OK 咯!

如何实现呢?方法有二:

通过 URL 除掉分类下日志的 Feed 显示;

通过一个小函数除掉分类下日志的 Feed 显示。

两种方法都很简单,首先要知道分类的 ID 。 WP 2.5 版以前,在控制面板 「管理」->「分类」 下面即可见分类 ID;在 WP 2.5 之后,这些分类 ID 不直接显示出来了,但可以通过分类链接来判断:控制面板 「管理」->「分类」 下,各分类对应的链接即包含分类 ID,如下图所示:

cat-id

所以,如果你想把 ID 为 20 的分类在 Feed 中除掉,就在 Feed 地址后面加上」?cat=-20″(不要引号) 就好了。

例如:

正常 Feed:https://www.weixiaoduo.com/feed

调整后的 Feed:https://www.weixiaoduo.com/feed?cat=-20

要是想灭掉更多目录:https://www.weixiaoduo.com/feed?cat=-20&cat=-21&cat=-22

可惜,这种 Feed 地址挺不好看的,所以我们可以借助 Feedburner 之类的烧制服务来美化。但要注意的是,Feedburner 所接纳的句法有点小差异,我们不能用 「与」 符号 「&」,需要改用逗号:

https://www.weixiaoduo.com/feed?cat=-20,-21,-22

方法一介绍完咯,下面介绍方法二。不想用如上方法的话,可以看看用小函数滴方法。只要在 functions.php 里加入如下 code 就好:

以下为引用的内容:

function my_cat_exclude($query) {
if ($query->is_feed) {
$query->set('cat','-20,-21,-22');
}
return $query;
}

add_filter('pre_get_posts','my_cat_exclude');

这样就可以在不调整 feed url 的情况下,在 feed 里除去选定分类下的日志了!真是简单整洁的方法,只是没法输出多个 feed,没方法一灵活。