WordPress默认开启了feed功能,好处不言而喻,可以方便RSS阅读器进行订阅,让读者及时收到博客的更新信息。但有些博客基本没有人订阅,却有一堆机器人来采集博客的feed,方便了别人复制你的文章不说,还造成了不必要的资源消耗。
阻止采集feed的方式很多,比如feed中只输出文章摘要,而不输出全文,这个在WordPress后台 – 设置 – 阅读中就可以设置。但是我出于某些目的,并不完全是为了防采集,不想开放博客的feed功能,该怎么设置呢?
简单搜索了一下,直接在主题的functions.php中加入下面的代码:
<?php
function uziwp_disable_feed() {
wp_die( __( 'This site does not have a feed, visit the <a href=”'. esc_url( home_url( '/' ) ) .'”>home page</a>!' ) );
}
add_action('do_feed', 'uziwp_disable_feed', 1);
add_action('do_feed_rdf', 'uziwp_disable_feed', 1);
add_action('do_feed_rss', 'uziwp_disable_feed', 1);
add_action('do_feed_rss2', 'uziwp_disable_feed', 1);
add_action('do_feed_atom', 'uziwp_disable_feed', 1);
add_action('do_feed_rss2_comments', 'uziwp_disable_feed', 1);
add_action('do_feed_atom_comments', 'uziwp_disable_feed', 1);
这种方法实现的效果是,当你打开博客的feed地址(如https://www.jiloc.com/feed
)时,页面会直接显示设置的错误信息,feed代码已经被删除,也就是说这个feed地址仍然存在,而不是打开这个链接直接显示404。
发表回复