怎么删除feed php,如何彻底移除并关闭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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值