截断 WordPress RSS 输出,并添加版权信息

前两天一网友留言说本站以前的 RSS 没法正常获取图片了,网站更新后也没有看到新的 RSS,请求更新一下…我粗略估计是因为近期开启了图片防盗链,导致大家在 RSS 浏览器里边都看不到我的文章图片,影响了阅读体验。为何这么做不用细说,因为我至少看到一个站点在采集本博,流量似乎比本体还高,开启图片防盗链也是无奈之举啊……

那么干脆一不做二不休,反正 RSS 阅读器里面观看效果都不好,何不如截断 RSS Feed 输出,并且在输出的内容后边添加版权信息,引导读者来到源站打开呢?一通折腾现在我 WordPress RSS 的效果如下图:

截断 WordPress RSS输出,并添加版权信息
截断 WordPress RSS 输出并添加版权信息,上图为 Tiny Tiny 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');
1500 1000 Kevin's
「截断 WordPress RSS 输出,并添加版权信息」有 13 条评论
  • Lvtu
    05/10/2024 at 22:00 回复

    有个问题:在我的RSS里,你这个最后版权信息中的原文链接地址不换行溢出界面了。。。。

    • Kevin
      05/11/2024 at 09:31 回复

      应该不会吧?我看其他地方都正常,或许是rss阅读器的问题?

      • Lvtu
        05/11/2024 at 10:52 回复

        嗯,不过文章是正常的,所以好奇怪。。。

    • Kevin
      05/11/2024 at 09:32 回复

      我没有对该行写额外的css,就是个

  • 格子老师
    04/29/2024 at 09:14 回复

    干的漂亮

  • 老张博客
    04/29/2024 at 08:36 回复

    还是每个人的想法不一样吧,有人就是喜欢在APP里看,而有人就是喜欢到源站里看。

  • Dabenshi
    04/28/2024 at 11:11 回复

    我想问的问题网友帮我问了,看了一下效果很好,总比图裂强。截断输出等于没有图,可以调用默认图册

  • obaby
    04/28/2024 at 10:57 回复

    这个功能不错,最近高产啊

  • 秋风于渭水
    04/28/2024 at 10:55 回复

    自动化采集倒是有个不是办法的办法,在文章外链的跳转页(基本上大部分文章多多少少会有几个外链在其中)检查防盗,如果发现访问入口不是文章页,则跳回原站,放松对图片的防盗链。大部分的自动化采集不会处理跳转页。以及防火墙里拉黑ok http、Go http、python http的默认UA,绝大部分广泛爬虫不会改自己的UA。

    • Kevin
      05/07/2024 at 16:09 回复

      是个办法~
      但其实之所以像文章这样干还有一层原因,我想引导回主站
      想了一下:图片直接404似乎也不好,应该让它显示个默认占位图片~

  • 灰常记忆
    04/28/2024 at 10:34 回复

    大佬 我是研究不来这些

  • xige
    04/28/2024 at 10:01 回复

    之前我就想法子整理我站的rss,当时费了不少劲。现在用rss软件的人越来越多了,其实更需要合理的控制rss,多数人都不会注意rss,有的人全文的输出,有的人输出短短的一句,原文链接都没有。结合这些情况当时我做分享时重新整了整个站的rss模式,不涉及隐私比如类似你这样教程文就全文输出,涉及到隐私内容就输出摘要,不让信息网络泛滥。

    评论框理的昵称邮件不错位了,解决了很棒呀

    • Kevin
      05/07/2024 at 16:02 回复

      我也疑惑,你的网站前台需要密码才能看(我还忘了,多次登不进去);
      但是RSS可以全部阅读,
      想必你现在已经注意到并且解决此 confuse了~

发表评论

请输入关键词…