Typecho主题开发 | 实现RSS订阅,顺便推荐一个RSS阅读器

2024-08-11

1466

3

前言

前段时间,在我博客的评论区中,有几位大佬讨论到了博客要不要加 RSS 的问题,因为我自己平时是不使用 RSS 订阅的,所以就先入为主的认为 RSS 过时了,应该没什么人用了,但看他们的讨论发现似乎用的人还挺多的。

今天突然想起来这个事,因此就也试了一下,发现确实还挺方便、挺好用的,于是乎,今天就赶紧在主题中把这个功能给加上了,顺便也发了一个版本。

本来这是一个很小的功能,加就加了,但由于这里面有个小坑,所以感觉还是需要说明一下,不然估计很多人都不一定会用。

1. 先说用法

事实上,Typecho 默认是支持 RSS 的,只是我之前觉得没用,就没有让它显示出来而已,所以,这次我在主题的配置管理界面加了一个开关,启用显示 RSS 就可以了。

保存设置后,就可以在前台看到 RSS 订阅的图标了。

点击图标就可以跳转到订阅的链接地址,但这样得到的默认订阅文件包含了完整的文章正文,如下图所示:

这至少存在以下三个问题:

  • RSS 订阅文件通常会包含不止一篇文章,如果每篇文章都比较长的话,那么这个文件就会非常大,少数人的订阅就可能导致网站性能的显著下降;
  • RSS 内容只有结构,没有样式,并且如果文章中的图片做了防盗链,那么,就算内容是完整的,RSS 阅读器看到的也可能是错乱或残缺的;
  • 最后也是最重要的,作为博主,我们当然希望读者通过 RSS 订阅器收到更新通知后,最终还是能通过点击详情,返回到原站完成阅读。

因此,我们希望 RSS 返回的是摘要,而不是完整的内容,这也是一位参与讨论的大佬提到的。

好在实现这个功能不需要额外的开发,只是需要一些骚操作。首先,需要到 设置 -> 阅读 中,将 聚合全文输出 设置成 仅输出摘要,如下图所示:

其次,到文章编辑页面,在文章中合适的位置加入 <!--more--> 标记,如下图所示:

这样 RSS 中返回的就是 more 前面的一段文字了,返回的越少性能越好。值得注意的是,这种设置同样也会作用于首页的文章列表,也能一定程度上优化性能,但内容返回太少可能会影响美观,所以适中就好,也不需要有太多讲究。

2. 再说原因

为什么需要上面两步这么骚的配置操作呢?我没有找到相关的官方文档说明,因此,又需要翻一翻源码了,不感兴趣的可以跳过。

首先,找到 RSS 的处理类 Feed,其中有这样一段代码:

大致的意思是,有一个 feedFullText 配置项,如果为,就返回完整的内容,如果不为,就看看文本中是否包含 <!--more--> 标记,如果包含了,就返回摘要原文链接,如果不包含就还是返回完整的内容,这就是为什么需要在文章中加 <!--more--> 标记的原因了。

接下来就是要查查 feedFullText 是干什么的了,通过全文搜索,很容易就可以定位到下面的代码:

通过上下文分析,我们不难确定 feedFullText 指的就是前面提到的 聚合全文输出 设置了。

不得不说,Typecho 作者在很多地方考虑的还是相当严谨的,只是这文档真的是槽点太多了,比如说这里,不翻源码谁能想得到呢?

3. RSS 订阅

RSS 订阅功能启用后,我们还是需要自己看一下效果的,由于我平时不用 RSS,也不知道哪个订阅器更好用,所以就直接通过浏览器插件找了一个相对好用一点的。

我用的是第二个,其他的我也试了几个,要么用不了,要么需要登录之类的,这个用起来感觉最简单,有兴趣的可以试一下,操作界面也挺干净清爽的,订阅后的效果如下。

这个订阅器还有一个好处就是可以直接在阅读器中浏览原站,这也算是给了我一个小小的惊喜吧,如下图所示:

关于 RSS 阅读器,由于我自己了解的也不是很多,所以更多的内容大家就自己去尝试探索吧!

结语

最后,我想咨询一下,大家平时 RSS 订阅用得多吗?RSS 订阅可能真的是我一直以来过于轻视的功能,貌似老外挺喜欢用这个的,另外,如果有更好用的阅读器,也欢迎推荐一个给我,我也想试着用起来,当然,有兴趣的也欢迎订阅一下我的博客!

最后,想要用好 Typecho,少不了 PHP 的相关知识,点击下方按钮可获取全套的 PHP 零基础视频教程
百度网盘
上述学习资源均来源于网络,搜集整理不易,仅供学习研究使用,如有需要,请保存至个人网盘备份,以防下架或丢失!

相关推荐

  1. 终于收到 Google Adsense 漂洋过海邮寄过来的 PIN 码了 2025-03-13
  2. 为博客网站增加一个简单的算术验证码,防止机器人垃圾评论轰炸 2025-03-12
  3. 如何基于 Typecho 实现中英双语网站(下) 2025-02-20
  4. 如何基于 Typecho 实现中英双语网站(上) 2025-02-09
  5. Typecho中添加外链跳转的过渡页 2024-12-18

本文作者: 老朱

原文链接: Typecho主题开发 | 实现RSS订阅,顺便推荐一个RSS阅读器

版权声明: 本站所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!

免责声明: 文中如涉及第三方资源,均来自互联网,仅供学习研究,禁止商业使用,如有侵权,联系我们24小时内删除!

Typecho RSS

评论4

😊 😃 😄 😁 😆 😅 😂 🤣 🙂 🙃 😉 😇 😏 😌 😍 😘 😗 😙 😚 😋 😛 😜 😝 😒 😔 😖 😞 😟 😠 😡 😳 😨 😰 😥 😢 😭 😱 😲 😵 😷 🤒 🤕 🤢 😴 🤤 😪 😫 😬 😮 🤲 🤜 🤛 🤚 🤝 🙏 🤞 🤟 🤘 🤙 👌 👍 👎 👊 👏 🙌 👐 💪
  1. 老孙

    我也是FreshRSS,然后通过API输出朋友文章

    2024-08-15 16:26
    1. 老朱

      我后续也搞一个试试

      2024-08-15 17:00
  2. Tabor

    服务器部署了FreshRSS,很好用的一个RSS阅读器,推荐试试吧

    2024-08-12 10:06
    1. 老朱

      回头我试试

      2024-08-12 10:12