如何彻底移除并关闭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地址时,页面会直接显示设置的错误信息,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]

展开阅读全文

分享到: 更多 (0)
赞(0)
如果文章内容或图片资源失效或者您对文章有异议,请留言反馈或点击右下角邮件图标发送邮件说明情况,我们会及时处理,谢谢!
  • WordPress 如何实现纯代码添加禁止某些用户登录的方法
    在某些特殊情况下某些用户损害了网站的利益,你可能就需要禁止他们登录网站,WordPress博客如何实现免插件纯代码添加禁止某些用户登录的方法,也就是WordPress博客用户怎么实现封号,近日以来网站垃圾信息,垃圾回复泛滥,由于之前不怎么关...
  • WordPress非插件实现文章点赞功能
    功能丰富的WordPress点赞插件不少,但对于要在主题中集成简单文章点赞功能的需求,插件就显得不合适,于是乎非插件实现文章点赞功能的方法就诞生,实现思路是:可以通过ajax实时显示点赞数量,自定义字段保存赞数量,Cookies禁止重新点赞...
  • WordPress自定义登录页面LOGO、链接、文本、样式等
    自定义 WordPress 登录界面 Logo 在主题目录 functions.php 中加入以下代码: //自定义WordPress登录界面Logo function fanly_custom_login_logo() { echo '&...
  • 更改WordPress主题之前必须做的15件事
    使用过WordPress的人都应该做过一件事,那就是更换主题。但如果你一直使用的就是默认主题,那就更好办了。WordPress最大的魅力就是,更换主题很简单轻松,但主题的更换不仅仅只是激活就完事了。本文将介绍更改WordPress主题之前必...
  • WordPress判断文章发布时间是否超过一个月时输出一段声明
    今天走访博客时发现一个小功能挺好的,就是判断文章发布时间是否超过一个月时输出一段声明。 因为百影阁是一个技术型、分享型网站,发布的文章时间久了可能有些技术功能已经过时、图片失效或者下载资源失效,当有访客再次阅读文章时,就应当设定一个友善的提...
  • WordPress 自定义文章类型(Post Type)
    什么是 Post Type ? WordPress 里面内置了两种常用的 Post Type :Post(文章)、Page(页面),分别用来展示两种类型的内容,一种是相对动态的文章,另一种是相对固定的页面。 除此之外,WordPress 还...
  • WordPress 给最新文章和置顶文章添加new和top图标
    wordpress发布文章一般类型是置顶或者在默认正常。如果在置顶文章或者是24小时内最新发布的文章标题加上相应的图标,不仅可以增加美观,也可以提高用户浏览网站的点击率。网上有各种漂亮的图标大家可以自己去搜一下。然后上传网站替换下面代码的图...
  • WordPress纯代码实现“返回顶部、返回底部、评论”效果
    相信大家对返回顶部、返回底部这些功能已经不陌生了,wordpress上也有很多插件可以实现,也有很多代码方式; 今天我分享的也是以纯代码实现”返回顶部、返回底部、评论”的效果,但是样式跟其他人的可能不同,个人认为比较...
  • WordPress给文章添加百度是否已收录展示和查询功能
    1、编辑主题目录的functions.php文件,在最后一个?>标签前新添如下代码并保存(如没有?>标签,则直接加到最后面): //百度收录展示 function baidu_check($url){ global $wpdb;...
  • 为WordPress添加百度分享按钮侧边悬浮固定效果
    如上图所示,百度分享默认固定在页面左侧边,不管页面向下或者向上滚动,百度分享按钮都会固定悬浮显示; 好了,下面就介绍一下方法吧,其实很简单,在原百度分享代码上添加一段css即可。 1、首先在wordpress后台编辑footer.php文件...
  • WordPress自定义后台登录页面的方法
    一成不变的wordpress后台登录界面早已看腻了也用腻了,这篇文章教你改变一下这一成不变的后台登录界面 教程所需的代码已经打包在下面,点击下载就可以了,贴出部分代码: //开始 //登录页面 function custom_login()...
  • WordPress网站底部增加蒲公英动态特效教程
    这个特效曾经我也用过很长一段时间,还是比较不错的,喜欢折腾的朋友可以使用一下,下面说一下方法 如果你实在不想折腾直接粘贴一下代码到你的底部文件中吧,注意代码中“图片地址”四个大字哦,将文中图片传到你的服务器中获取图片地址即可 <!--...

评论 抢沙发

  • Q Q(选填)
  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址