RSS的分类(Category)是RSS 2.0规范中定义的元素,用于为单篇RSS文章或整个feed打上主题标签,让订阅者可以按照分类筛选内容,避免被无关信息干扰。分类可以嵌套,支持多层级结构,也允许一篇文章关联多个不同分类,是优化RSS内容组织的重要方式。

RSS分类的作用
合理设置RSS分类能带来多方面的好处:
- 帮助订阅者快速定位感兴趣的内容,提升阅读效率
- 让RSS阅读器可以按照分类对内容分组展示,界面更清晰
- 便于内容创作者统计不同主题内容的订阅情况
- 符合RSS 2.0规范,提升feed的兼容性
手动编写XML添加分类
如果是直接手写RSS XML文件,分类元素需要放在<item>标签内部,语法格式如下:
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<title>我的技术博客</title>
<link>https://ipipp.com/blog</link>
<description>分享技术相关的原创内容</description>
<item>
<title>RSS分类添加教程</title>
<link>https://ipipp.com/blog/rss-category</link>
<description>本文介绍如何为RSS文章添加分类</description>
<!-- 单个分类 -->
<category>RSS教程</category>
<!-- 多个分类 -->
<category>前端开发</category>
<category>内容订阅</category>
<!-- 嵌套分类 -->
<category>技术/后端开发</category>
</item>
</channel>
</rss>
需要注意分类内容是纯文本,不需要额外转义,嵌套分类可以用斜杠分隔层级,也可以多个<category>标签嵌套实现,不过主流阅读器更兼容斜杠分隔的写法。
使用Python生成带分类的RSS
Python中可以使用feedgen库快速生成符合规范的RSS feed,添加分类的代码如下:
from feedgen.feed import FeedGenerator
# 初始化feed生成器
fg = FeedGenerator()
fg.title('我的技术博客')
fg.link(href='https://ipipp.com/blog')
fg.description('分享技术相关的原创内容')
# 添加单篇文章
fe = fg.add_entry()
fe.title('RSS分类添加教程')
fe.link(href='https://ipipp.com/blog/rss-category')
fe.description('本文介绍如何为RSS文章添加分类')
# 添加单个分类
fe.category(term='RSS教程')
# 添加多个分类
fe.category(term='前端开发')
fe.category(term='内容订阅')
# 添加嵌套分类
fe.category(term='技术/后端开发')
# 生成XML并输出
fg.rss_file('rss.xml')
使用PHP生成带分类的RSS
PHP中可以直接拼接XML字符串,也可以使用SimpleXML扩展生成feed,以下是拼接XML的示例:
<?php
header('Content-Type: application/rss+xml; charset=utf-8');
echo '<?xml version="1.0" encoding="UTF-8"?>';
?>
<rss version="2.0">
<channel>
<title>我的技术博客</title>
<link>https://ipipp.com/blog</link>
<description>分享技术相关的原创内容</description>
<item>
<title>RSS分类添加教程</title>
<link>https://ipipp.com/blog/rss-category</link>
<description>本文介绍如何为RSS文章添加分类</description>
<category>RSS教程</category>
<category>前端开发</category>
<category>内容订阅</category>
<category>技术/后端开发</category>
</item>
</channel>
</rss>
分类设置的注意事项
- 分类名称尽量简洁明确,避免使用过于生僻的词汇
- 同一篇内容的分类数量不宜过多,一般3到5个即可
- 嵌套分类的层级不要超过3层,避免阅读器兼容问题
- 分类内容不要包含特殊字符,尤其是
<、>、&等XML保留字符