让WordPress RSS/Feed订阅数据延迟发布,附RSS技巧集锦
前些天给博客添加了一个百度是否收录的查询功能,今天无意点开了一篇显示已收录的查询链接,发现查到的居然不是我的博客博文,而是和我博客一直就有合作的一览 1001 相关文章:
文章既然显示百度已收录,那在百度搜索该文章链接就有结果才对,可是搜索发现:
居然找不到?代码是不会欺骗我的,那就只有一个解释:已收录的文章被百度 K 掉了!进一步可知,和一览 1001 的合作采集有脱不了的干系!个人猜测一览采集发布并且被百度收录后,百度立马就把我的收录给 K 了。
想了想如何解决,对于一览的合作采集,对博客增加外链还是不错的,所以直接禁止 feed 的做法是不合理的,而且我博客也有少数邮箱订阅用户。最终,我觉得可以采用延后 feed 结果的方法,让一览只能采集到我前些天的数据,而不是实时数据。
百度了一下,还真有关于 RSS 延迟发布的代码!
下面的代码来自王发利博客:
一、RSS 数据延迟
代码作用:设置 Rss Feed 延迟输出文章数据
//RSS Feed 延迟
function publish_later_on_feed($where) {
global $wpdb;
if ( is_feed() ) {
$now = gmdate('Y-m-d H:i:s');
//数据延迟2天显示,也就是feed只会输出截止到前天的数据,可根据实际需求自行修改
$wait = '2';
$device = 'DAY';
$where .= " AND TIMESTAMPDIFF($device, $wpdb->posts.post_date_gmt, '$now') > $wait ";
}
return $where;
}
add_filter('posts_where', 'publish_later_on_feed');
使用方法:将以上代码添加到主题目录下的 functions.php 文件的最后一个 ?> 之前即可。
Ps:小小的吐槽一下,王兄博客的代码居然被转码了还不知道,玩代码的意识还不到位呀!不过还是感谢他的分享!
下面附加分享一些我搜集自网络的其它 RSS 技巧:
二、添加全文链接
这个方法适合在 WordPress 阅读设置中设置了 Feed 仅输出摘要内容的情况:
此时可以在 functions.php 里面加上如下代码,让 Feed 摘要中出现全文链接:
/** RSS 中添加查看全文链接 **/
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');
三、添加文章版权
这个方法适合在 WordPress 阅读设置中设置了 Feed 输出全文内容的情况:
此时可以在 functions.php 里面加上如下代码,让 Feed 内容输出文章版权申明:
//feed输出自定义版权
function feed_copyright($content) {
if(is_feed()) {
$content.= "<blockquote>";
$content.= '<div> » 转载请保留版权:<a title="张戈博客" href="http://www.chenguangblog.com/">张戈博客</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="http://list.qq.com/cgi-bin/qf_invite?id=71a2f28dff63348c301ded982b0a083857be253891e9bae8">点此订阅本站</a></div>';
$content.= "</blockquote>";
}
return $content;
}
add_filter ('the_content', 'feed_copyright');
版权内容可自行定义,注意 PHP 和 HTML 代码的正确性即可!
这种方法可简单对付那些使用工具自动采集 feed 内容的网站,当然,对某些带关键词和超链接替换的无耻网站无效!
四、输出特色图片
//Feed 输出文章特色图像(缩略图)
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');
五、禁用 Feed 功能
若实在烦透了这个功能,那么就禁用它好了!
//禁用Feed订阅
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);
好了,以上就我认为比较实用的 Feed 技巧了,喜欢的可以去试试!
- [APT攻击]趋势科技捕获一次APT攻击活动
- Android减包 - 减少APK大小
- 一大拨漏洞来袭,eBAY的黑色星期五
- 基于 Docker 持续交付平台建设的实践
- Struts原理与实践
- 玩转WiFi Pineapple之看我如何优雅的盗取CMCC账号
- iOS多边形马赛克的实现(下)
- 见招拆招:绕过WAF继续SQL注入常用方法
- 从零开始在Python中实现决策树算法
- 走进科学:揭秘如何入侵电视机
- iOS多边形马赛克的实现(上)
- Android终端上视频转GIF的实现及GIF质量讨论
- Android手机上用户操作模拟方法的研究与实现
- Firefox内存释放重用漏洞高级利用(Pwn2Own2014、CVE-2014-1512)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 一文搞定 Linux 常用高频命令
- 推荐一款科研必备的Python数据可视化神器——PyQtGraph
- 机器学习基础:可视化方式理解决策树剪枝
- 神级代码注释-这次是来搞笑的
- Gremlin 图查询概述
- JS,PHP,Python,Java对JSON数据的处理
- 基于Canal与Flink实现数据实时增量同步(二)
- Spring第四天:SSH的整合、HibernateTemplate的使用、OpenSessionInViewFilter的使用
- IDEA 下单程序多端口不同配置独立运行
- 基于Canal与Flink实现数据实时增量同步(一)
- 8848钛金手机之nacos的注册发现
- 让你git 时不再输入账号和密码
- JS 实现点击按钮复制一段文字
- Python操作Excel合并单元格
- CRM第一天:客户关系管理系统的环境搭建和注册