让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>  &raquo; 转载请保留版权:<a title="张戈博客" href="http://www.chenguangblog.com/">张戈博客</a> &raquo; <a rel="bookmark" title="'.get_the_title().'" href="'.get_permalink().'">《'.get_the_title().'》</a></div>';
                $content.= '<div> &raquo; 本文链接地址:<a rel="bookmark" title="'.get_the_title().'" href="'.get_permalink().'">'.get_permalink().'</a></div>';
        $content.= '<div>  &raquo; 如果喜欢可以:<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 技巧了,喜欢的可以去试试!

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏java 成神之路

iostat 命令详解

40090
来自专栏大数据

微博爬虫

全文简介 本文是用Python爬取微博移动端的数据。可以看一下Robots协议。另外尽量不要爬取太快。如果你毫无节制的去爬取别人数据,别人网站当然会反爬越来越严...

26750
来自专栏非典型技术宅

Xcode报错: The file couldn't be opened

有位同学给了我一份代码,通过GitHub。下载之后怎么都打不开,总是提示“The file couldn't be opened”。

37110
来自专栏小白课代表

软件分享 | AutoCAD 2011 安装教程

6、姓氏名字组织随便输,比如:公众号小白课代表最棒,输入序列号:666-69696969,密钥:001C1

9010
来自专栏安恒信息

“圣诞怪杰”Grinch:比Bash破壳(shellshock)更严重的Linux漏洞

安全研究人员在Linux操作系统中发现了一个名为圣诞怪杰(Grinch)的漏洞,该漏洞存在于linux系统中,和Bash破壳(shellshock)漏洞(CNN...

36870
来自专栏静晴轩

Webpack 打包优化之速度篇

在前文 Webpack 打包优化之体积篇中,对如何减小 Webpack 打包体积,做了些探讨;当然,那些法子对于打包速度的提升,也是大有裨益。然而,打包速度之于...

45320
来自专栏Java技术分享圈

杨老师课堂_安卓教程第一篇之入门

10320
来自专栏移动端开发

Cocos 2d-X Lua 游戏添加苹果内购(一) 图文详解准备流程

      最近给游戏添加了苹果的内购,这一块的东西也是刚刚做完,总结一下,其实这里不管是游戏还是我们普通的App添加内购这一块的东西都是差不多的,多出来的部分...

16930
来自专栏BeJavaGod

通过ngrok实现内网穿透,调试微信小程序

话说以前在做微信支付,支付宝支付的时候都是使用的花生壳,那个时候是免费的,多购买一个二级还不知道是三级域名多花了25块钱。 最近我们在搞小程序开发,没想到真的是...

84250
来自专栏魏艾斯博客www.vpsss.net

腾讯云COS对象存储WordPress插件 让网站动静分离跑的更快

腾讯云 COS 对象存储是利用云存储空间来存放静态文件,让网站动静分离跑的更快。我们平时用 wordpress 博客较多,而适用于腾讯云的很多都失效不好用了,今...

90420

扫码关注云+社区

领取腾讯云代金券