彻底关闭RSS功能或推迟WordPress的RSS输出时间方法

为什么要彻底关闭RSS功能或推迟WordPress的RSS输出时间?

外贸建站无论是企业网站还是其他内容网站,一个新网站,最怕的就是被人采集。因为经常采集你的站比你的新网站资历和权重高,搜索引擎更喜欢收录它的文章,而对你的新网站视而不见。

因此,我们可以通过推迟 WordPress 的 RSS 输出时间来进行简单的防御。甚至你不想要RSS功能,也可以直接禁用。

还有一个功能,阻止您发布文章,然后修改内容,导致 RSS 内容或未修改状态。

延迟RSS输出代码

直接复制下面这串代码,添加到你主题函数文件(function.php)里面保存即可。

//推迟RSS输出 https://www.ienpai.com/1695.html
function publish_later_on_feed($where) {
    global $wpdb;
    if ( is_feed() ) {
        $now = gmdate('Y-m-d H:i:s');
        //RSS输出延迟多久由$wait的值控制
        $wait = '2';
        //输出类型MINUTE, HOUR, DAY, WEEK, MONTH, YEAR
        $device = 'DAY';
        $where .= " AND TIMESTAMPDIFF($device, $wpdb->posts.post_date_gmt, '$now') > $wait ";
    }
    return $where;
}
add_filter('posts_where', 'publish_later_on_feed');

上面的这个代码的功能是设置将RSS推迟两天输出内容,如果你想要自己修改,推迟跟多时间,可以根据代码里面的注释修提示改即可。

设置RSS更新频率代码

还有一个方法是可以使用下面的代码修改RSS更新的频率,这个主要是针对RSS订阅软件,一般RSS软件每隔1小时就来抓一次数据,我们可以设置为每6小时更新。

// 每6小时
add_filter( 'rss_update_period', function() {return 'hourly';} );
add_filter( 'rss_update_frequency', function() {return '6';} );

以上介绍的这个通过延迟RSS输出时间的方法只能针对通过RSS方法来采集的网站有一定防范作用,如果大咖通过非RSS方法采集你网站内容,那么这个方法就没有用了。

完全禁用RSS功能

如果你觉得RSS没什么用处,也可以直接禁用,比如我的网站是完全禁用RSS的:

禁用WordPress RSS

方法如下:

把下面的代码添加到主题函数文件(function.php)里面,不会的朋友可以参考:安全添加代码到functions.php文件的方法:Code Snippets教程。

// 完全禁用WordPress RSS功能
function itsme_disable_feed() {
 wp_die( __( 'No feed available, please visit the <a href="'. esc_url( home_url( '/' ) ) .'">homepage</a>!' ) );
}
add_action('do_feed', 'itsme_disable_feed', 1);
add_action('do_feed_rdf', 'itsme_disable_feed', 1);
add_action('do_feed_rss', 'itsme_disable_feed', 1);
add_action('do_feed_rss2', 'itsme_disable_feed', 1);
add_action('do_feed_atom', 'itsme_disable_feed', 1);
add_action('do_feed_rss2_comments', 'itsme_disable_feed', 1);
add_action('do_feed_atom_comments', 'itsme_disable_feed', 1);

// 移除网页RSS代码
remove_action( 'wp_head', 'feed_links_extra', 3 );
remove_action( 'wp_head', 'feed_links', 2 );

当然,你也可以使用Disable Feeds插件直接禁用RSS订阅。

Posted in WordPress建站笔记.