前两天一网友留言说本站以前的 RSS 没法正常获取图片了,网站更新后也没有看到新的 RSS,请求更新一下…我粗略估计是因为近期开启了图片防盗链,导致大家在 RSS 浏览器里边都看不到我的文章图片,影响了阅读体验。为何这么做不用细说,因为我至少看到一个站点在采集本博,流量似乎比本体还高,开启图片防盗链也是无奈之举啊……
那么干脆一不做二不休,反正 RSS 阅读器里面观看效果都不好,何不如截断 RSS Feed 输出,并且在输出的内容后边添加版权信息,引导读者来到源站打开呢?一通折腾现在我 WordPress RSS 的效果如下图:
事实上,在WordPress 仪表盘-设置-阅读设置里边就有关于 Feed 中的每篇文章,是输出全文还是摘要的选项,不过 WordPress 定义的摘要是指编辑文章时手动填写的内容,大部分 WPer 应该都不会填它;当该值为空时,WordPress 系统会截取文章的前面部分内容作为 RSS 输出,比较枯燥丑陋。
Feed 和 RSS 的区别是什么?两者有何关系
在 WordPress 中,“Feed”是一种泛指,它可以是 RSS、ATOM 或其他任何类型的网页内容订阅,你可以把它理解为一种用来传输和共享网站内容的技术或标准。而“RSS”,全称为 Really Simple Syndication,是“Feed”中的一种具体技术实现方式,它是站点与站点之间共享内容的一种简易方式,也叫作聚合内容。一个 RSS 包含很多条目,一个条目可能包含一段介绍、一篇帖子的摘要、作者信息、发布日期等内容。
简单来说,“Feed”是一个更广泛的概念,包含了如 RSS、ATOM 等各种形式的内容订阅。而“RSS”是其中一种特定的、广泛使用的 Feed 格式。
可以试试将以下代码片段循环进主题function.php
中,实现截取正文前 800 字符输出,并在末尾添加阅读全文超链接,然后在底部附加上源站版权信息。
// 截断 RSS 输出,并在末尾添加版权信息
function rss_append_copyright_info_and_truncate($content) {
$content = mb_strimwidth($content , 0, 800, '.....');
$content .= ' <a href="'.get_permalink().'" title="按此查阅全文和图片">[ 阅读全文 ]</a><hr/>'; // 添加“阅读全文”的链接
// 添加版权信息
$cprightfeed = '<p></p><span style="font-weight:bold;">原文链接:</span> <a rel="bookmark" title="'.get_the_title().'" href="'.get_permalink().'">'.get_permalink().'</a>
<br/><span style="font-weight:bold;">版权声明:</span> 原创文章采用 BY-NC-SA 协议进行授权 | Kevin\'s Space 版权所有,转载请用明链标明本文地址。
<br/><span style="font-weight:bold;">本站相关:</span> <a rel="nofollow" href="https://www.shephe.com/random/">随机文章</a> | <a rel="nofollow" href="https://www.shephe.com/memos">站长微博</a> | <a href="https://www.shephe.com/about/">关于本站</a> | <a href="https://www.shephe.com/guestbook/">联系站长</a> | <a rel="nofollow" href="#">捐助作者</a>
</p>';
$content = $content.$cprightfeed;
return $content;
}
add_filter('the_content_feed', 'rss_append_copyright_info_and_truncate');
有个问题:在我的RSS里,你这个最后版权信息中的原文链接地址不换行溢出界面了。。。。