关闭推迟wordpress RSS订阅

推迟WordPress的RSS输出时间_彻底关闭RSS功能

做网站,尤其是新网站,最怕的就是被人采集。因为往往采集你的站比你资历老,权重高,可能搜索引擎更加喜欢收录它的文章,而你的视而不见。

所以我们可以通过推迟WordPress的RSS输出时间来做一个简单的防护。如果你不想要RSS功能,也可以直接禁用。

另外还有一个功能就是防止你发表文章后又修改内容,导致RSS内容还是未修改状态。

延迟RSS输出代码

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

//推迟RSS输出 https://blog.naibabiji.com/skill/tui-chi-wordpress-rss-shi-jian.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小时
add_filter( 'rss_update_period', function() {return 'hourly';} );
add_filter( 'rss_update_frequency', function() {return '6';} );

最后,本文介绍的这个通过延迟RSS输出时间的方法只对通过RSS采集的网站有一定防范作用,如果别人不是通过RSS采集你网站内容,那么是没有办法的。

完全禁用RSS功能

如果你觉得RSS没什么用处,也可以直接禁用,方法如下:

把下面的代码添加到主题函数里面,新手可以参考:安全添加代码到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订阅。

给本文打分 post
滚动至顶部