缙哥哥自己就比较喜欢使用RSS订阅各位大佬的网站,来充实自己的知识、见识和本事,结果发现也有人利用RSS来采集缙哥哥的文章。为此,去年缙哥哥找了王发利和张戈的相关教程,给自己的WordPress RSS/Feed数据内容推送推迟了1天,而又有小伙伴反馈与站点内容相差很久,遂又改为6个小时,今天记录与大家分享。
WordPress Rss Feed 延时输出
老样子,在主题的functions.php
文件中添加以下代码:
//防RSS采集,让WordPress RSS/Feed订阅数据自定义时间延时发布推送 - https://www.dujin.org/14132.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://www.dujin.org/14132.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为设置的时间段单位。缙哥哥认为在这设置wait参数1,device参数DAY,即在发布文章1天后输出 Rss Feed 常规网站已然足够。当然,考虑到某些文章的时效性,缙哥哥还是决定将其改为 6 小时,你也可以根据自己的需要设置时间间隔。//SECOND,MINUTE, HOUR, DAY, WEEK, MONTH, YEAR 分别是秒,分,时,日,周,月,年。替换单位,更换数字即可。
Rss Feed订阅不显示某分类的设置
老样子,在主题的functions.php
文件中添加以下代码:
//Rss中排除某个分类输出 - https://www.dujin.org/14132.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');
如何查看WordPress分类ID
在WordPress仪表盘
→文章
→分类目录
,当你的鼠标点击任意分类名称下的编辑
链接,就会进入相关分类页面,则地址栏其中有一段category&tag_ID=666
,而这666就是你的WordPress分类目录ID。有些主题因为经常需要用到分类目录ID,还会贴心的帮你列出来。
添加Rss Feed查看全文链接及版权
这里需要注意的是,需要在WordPress仪表盘
→设置
→阅读
,将对于feed中的每篇文章显示设置为摘要(这不废话嘛,全文还查看全文个屁啊),同时也不推荐设置为全文输出,用来防止他人使用RSS/Feed进行采集复制。
老样子,在主题的functions.php
文件中添加以下代码:
//RSS中添加查看全文链接 - https://www.dujin.org/14132.html function feed_read_more($content) { return $content . '<p><a rel="bookmark" href="'.get_permalink().'" target="_blank">查看全文</a></p>'; } add_filter ('the_excerpt_rss', 'feed_read_more');
RSS全文模式下输出文章版权链接
怎么设置看上图及说明,不重复BB了。老样子,在主题的functions.php
文件中添加以下代码:
//RSS全文模式下输出文章版权链接 - https://www.dujin.org/14132.html function feed_copyright($content) { if(is_feed()) { $content.= "<blockquote>"; $content.= '<div> » 转载请保留版权:<a title="缙哥哥的博客" href="https://www.dujin.org/" target="_blank">缙哥哥的博客</a> » <a rel="bookmark" title="'.get_the_title().'" href="'.get_permalink().'">《'.get_the_title().'》</a></div>'; $content.= '<div> » 本文链接地址:<a rel="bookmark" title="'.get_the_title().'" href="'.get_permalink().'">'.get_permalink().'</a></div>'; $content.= '<div> » 如果喜欢可以:<a target="_blank" title="缙哥哥的博客" href="//www.dujin.org/14132.html" target="_blank">点此订阅本站</a></div>'; $content.= "</blockquote>"; } return $content; } add_filter ('the_content', 'feed_copyright');
Feed输出WordPress特色图片(缩略图)
一般来说,RSS Feed推送会显示WordPress文章中的特色图片,但是不排除部分主题或者版本不显示,那么我们就需要自己设置下。
//Feed输出WordPress特色图片(缩略图) - https://www.dujin.org/14132.html function rss_post_thumbnail($content) { global $post; //查询全局文章 if(has_post_thumbnail($post->ID)) { //如果有特色图像 $output = get_the_post_thumbnail($post->ID) ; //获取缩略图 $content = $output . $content ; } return $content; } add_filter('the_excerpt_rss', 'rss_post_thumbnail'); add_filter('the_content_feed', 'rss_post_thumbnail');
完全禁止WordPress Rss Feed输出
由于谷歌已经放弃Rss订阅,于是总有人说这个功能鸡肋、垃圾。虽然缙哥哥不这么认为,但是也还是有人想取消、禁止使用Rss Feed订阅推送。
//完全禁止WordPress Rss Feed输出 - https://www.dujin.org/14132.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);
add_action()
为WordPress的核心还是,表示将函数连接到指定action(动作),这里('do_feed', 'wp_disable_feed', 1); 动作就是要实现disable这个动作,输出。当然了,完全禁止直接用这个代码就可以,不需要再修改了。
缙哥哥总结
凡事都有阴阳两面,工具的作用如何看人。所以如何使用Rss订阅这个东西,就看你怎么用,合理应用一个东西,并适合自己,那将会有助于你!
大佬有没有,能禁止用户按f12页面跳转到其他页面的代码,拜求
禁止不了的,先F12再访问页面你就没辙了。
这个功能不错