共计 1615 个字符,预计需要花费 5 分钟才能阅读完成。
先来看看在维基百科上对 feed 的解释:消息来源 [1](英语:web feed、news feed、syndicated feed 又译为源料 [2]、馈送 [3]、信息提供 [4]、供稿 [5]、摘要、源 [6]、新闻订阅、网源 [7])是一种数据格式,网站可通过它将最新信息传播给用户,用户能够订阅网站的先决条件是网站可提供持续更新的信息。消息来源受到博客及新闻网站的广泛采用,因为此类型的网站经常更新内容。如前所述,feed 的译名很多,莫衷一是,至 2008 年底为止,还没有一个十分通用而备受认可的中文译名。将 feed 汇流于一处称为聚合(aggregation),而用于聚合的软件称为聚合器(aggregator)。对最终用户而言,聚合器是专门用来订阅网站的软件,一般亦称为 RSS 阅读器、feed 阅读器、新闻阅读器等。
WordPress 中默认开启了 feed 功能,可供读者订阅并获取博客更新,但是为了防止爬虫等程序批量采集博客 feed,目前我这边选择关闭 feed 功能
1 进入 WordPress 后台,找到设置 - 讨论,将“对于 feed 中的每篇文章,显示”更改为“摘要”

2 进入 WordPress 后台,找到外观 - 编辑,找到 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);

3 修改完成后,访问 https://hlynford.com/feed 会提示页面错误,feed 代码已经删除,但是地址还在,直接显示本站不提供 feed

4 博主这边使用的云落的 git 主题,主题自带更新,如果修改 funtions.php, 再下次主题更新的时候,会覆盖 functions.php 文件,所以参照云落提供的链接,将这段 functions 函数改成插件形式,这样不好影响更新,也不影响关闭 feed 功能的使用,具体查看原帖
https://gitcafe.net/archives/4032.html
5 将下面代码以 php 文件存储,编码为 UTF-8
<?php
/*
Plugin Name: 关闭 WordPress 的 feed 功能
Description: Description: 启用本插件后会关闭 WordPress 中的 RSS Feed 订阅功能
Author: Hlynford
*/
// 关闭 WordPress 的 RSS feed 功能
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);
?>
6 将 php 文件放在文件夹中,并将其压缩为 zip
7 进入 WordPress 后台,找到插件 - 安装插件,上传这个插件到 WordPress 并启用

8 使用插件的方法更为简单的实现了关闭 Feed 功能,同时主题更新也不受影响。