如何彻底移除并关闭WordPress的RSS feed
WordPress默认开启了feed功能,好处不言而喻,可以方便RSS阅读器进行订阅,让读者及时收到博客的更新信息。但有些博客基本没有人订阅,却有一堆机器人来采集博客的feed,方便了别人复制你的文章不说,还造成了不必要的资源消耗。
阻止采集feed的方式很多,比如feed中只输出文章摘要,而不输出全文,这个在WordPress后台 - 设置 - 阅读中就可以设置。但是我出于某些目的,并不完全是为了防采集,不想开放博客的feed功能,该怎么设置呢?
简单搜索了一下,发现网上都是下面这个方法,直接在主题的functions.php中加入下面的代码:
function disable_all_feeds() {
wp_die( '本站不提供feed' );
}
add_action('do_feed', 'disable_all_feeds', 1);
add_action('do_feed_rdf', 'disable_all_feeds', 1);
add_action('do_feed_rss', 'disable_all_feeds', 1);
add_action('do_feed_rss2', 'disable_all_feeds', 1);
add_action('do_feed_atom', 'disable_all_feeds', 1);
这种方法实现的效果是,当你打开博客的feed地址(如https://www.ludou.org/feed
)时,页面会直接显示设置的错误信息,feed代码已经被删除,也就是说这个feed地址仍然存在,而不是打开这个链接直接显示404。
代码版
如何才能彻彻底底地禁用WordPress的feed功能,连渣都不剩呢?我们可以使用下面的代码:
// 删除 wp_head 输入到模板中的feed地址链接
add_action( 'wp_head', 'wpse33072_wp_head', 1 );
function wpse33072_wp_head() {
remove_action( 'wp_head', 'feed_links', 2 );
remove_action( 'wp_head', 'feed_links_extra', 3 );
}
foreach( array( 'rdf', 'rss', 'rss2', 'atom' ) as $feed ) {
add_action( 'do_feed_' . $feed, 'wpse33072_remove_feeds', 1 );
}
unset( $feed );
// 当执行 do_feed action 时重定向到首页
function wpse33072_remove_feeds() {
wp_redirect( home_url(), 302 );
exit();
}
// 删除feed的重定向规则
add_action( 'init', 'wpse33072_kill_feed_endpoint', 99 );
function wpse33072_kill_feed_endpoint() {
global $wp_rewrite;
$wp_rewrite->feeds = array();
// 运行一次后,记得删除下面的代码
flush_rewrite_rules();
}
将以上php代码放入当前主题的functions.php中,然后登陆进入WordPress后台,随便打开一个页面,然后回来在主题的functions.php中将:flush_rewrite_rules();
这行代码删除即可。
插件版
下载后解压,将remove-feeds目录通过ftp上传到网站的wp-content/plugins目录,然后在WordPress后台 - 插件中,启用这个插件即可: Remove All feeds [for WPSE33072]
讲在最后
本文只是提供了WordPress禁用feed的方法,并不说明本站已经禁用了feed,本站的feed还是正常提供的,欢迎大家订阅!
订阅地址是:https://www.ludou.org/feed
-- 完 --
本文采用 「CC BY-NC-SA 4.0」创作共享协议,转载请标注以下信息:
原文出处:露兜即刻 https://www.ludou.org/how-to-remove-feeds-from-wordpress-totally.html
感谢无私分享,这是一个一直想知道的难题,没想到这么轻松
这这这..太彻底了。
这样禁用以后会影响WordPress手机客户端的使用的好像,我现在就是手机客户端不能上传文档,只能审核、回复评论了!
@明月登楼 这个功能只禁用feed,理论上不影响WordPress手机客户端,因为WordPress手机客户端用的是XMLRPC,没禁用XMLRPC应该没影响。
没用过WordPress手机客户端,你可以自己添加或删除文中的代码后试试。
@露兜 不错,我的feed还是有用处的,所以我一般都不会关闭feed!
呵呵,携我的Typecho博客过来露个脸!
楼主高招,学习了!
现在没有好的RSS阅读器啊~
很全面,不过Feed还是很有用的功能。
弱弱的问句博主,用的什么地方的空间,速度好快啊,还有这个https 博主是免费的还是收费的 怎么弄的 求教一下。
@虾米 腾讯云服务器,不介意可以使用我的推广链接进行注册:http://t.cn/R6pkwki
腾讯云也有免费的https
露兜啊…………
最近老被爬虫访问feed,露兜没有禁用feed,有什么阻止爬虫的高招吗?这个爬虫自动切换header和IP,作为新手实在没啥办法。
谢谢 收藏了
正需要,试了一下还挺不错
我的网站别的feed打开都能正常显示XML代码。最近在谷歌站长工具那边提示了很多feed结尾的404错误页面,然后把feed去掉显示出来是一张图片。这问题要怎么解决?求大神指点下迷津。
提示了很多feed结尾的404错误页面,然后把feed去掉显示出来是一张图片。这问题要怎么解决?
feed和rss吧,现在用的人少了,而且容易被采集。你说屏蔽了的话,搜索引擎会给你个通知说屏蔽了,有点纠结。
关闭了rss,feed之后,在百度搜索资源平台出现 链接异常,服务器抓取错误的提示,url就是 rss和feed,这样应该怎么办呢? 去提交死链吗?
今天才发现我的rss功能没打开