<返回更多

防RSS采集,自定义WordPress RSS/Feed订阅发布推送

2019-12-02    
加入收藏

wordPress/ target=_blank class=infotextkey>WordPress还是要去设置修改以下的,不然会被人利用。很多采集站利用RSS订阅来采集你的博客内容,辛辛苦苦编写的原创内容被轻而易举的采集去了,而且被监控的时候,你原创文章一发布出来,采集站利用RSS也一起发出来,如果蜘蛛先到采集站,还会以为采集站才是原创,白白给他人做嫁衣。

下面来介绍下几种WordPress设置RSS的方法。设置-阅读里面,把对于feed中每篇文章,包含设置成摘要,默认是全文的,上方feed显示最近也可以设置显示多少个。

WordPress Rss Feed 延时输出

在主题的functions.php文件中添加以下代码,设置延时一天显示

//防RSS采集,自定义WordPress RSS/Feed订阅发布推送 - https://blog.00930.cn/179.html

function publish_later_on_feed($where) {

global $wpdb;

if ( is_feed() ) {

$now = gmdate('Y-m-d H:i:s');

//数据延迟1天显示,也就是feed只会输出截止到前天的数据,可根据实际需求自行修改

$wait = '1';

$device = 'DAY';//其他时间单位可参考https://blog.00930.cn/179.html中的说明

$where .= " AND TIMESTAMPDIFF($device, $wpdb->posts.post_date_gmt, '$now') > $wait ";

}

return $where;

}

add_filter('posts_where', 'publish_later_on_feed');

$wait = ‘1’;中1代表单位数字,$device = ‘DAY’中DAY代表单位天,也就是延迟1单位天,延时一天的意思。SECOND,MINUTE, HOUR, DAY, WEEK, MONTH, YEAR 分别是秒,分,时,日,周,月,年。需要的自行替换就行,比如要设置延迟12小时显示,就可以设置$wait = ’12’; 单位设置$device = ‘HOUR’;

Rss Feed订阅设置不显示某分类

在主题的functions.php文件添加以下代码,代表排除id6、66、666的分类,如何查看自己某些分类的id?点击编辑那个分类,就可以看到连接里面有category&tag_ID=1,这里的1就代表着这个分类的id。

//Rss中排除某个分类输出 - https://blog.00930.cn/179.html

function exclude_cat_feed($query) {

if(is_feed()) {

$query->set('cat','-6,-66,-666'); //排除ID为 6,66,666 的分类

return $query;

}

}

add_filter('pre_get_posts', 'exclude_cat_feed');

完全禁止Rss Feed输出

还是在functions.php文件添加以下代码,需要禁止掉Rss直接复制进去就行,不需要修改。

//完全禁止WordPress Rss Feed输出 - https://blog.00930.cn/179.html

function wp_disable_feed() {

wp_die( __('<h1>抱歉,本站不支持订阅,请返回<a href="'. get_bloginfo('url') .'">首页</a></h1>') );

}

add_action('do_feed', 'wp_disable_feed', 1);

add_action('do_feed_rdf', 'wp_disable_feed', 1);

add_action('do_feed_rss', 'wp_disable_feed', 1);

add_action('do_feed_rss2', 'wp_disable_feed', 1);

add_action('do_feed_atom', 'wp_disable_feed', 1);

本篇由安小客博客原创

来源:https://blog.00930.cn/179.html

声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>