在 DedeCMS 中,RSS 的生成并不是像普通文章页面那样通过一个独立的 .htm 模板文件来控制的,它的内容是由一个专门的模板文件和后台的生成规则共同决定的。

(图片来源网络,侵删)
你需要两样东西:
- 一个 RSS 专用的模板文件 (
rss.htm):定义了 RSS 输出的 XML 结构和内容。 - 一个在后台设置的 RSS 生成规则:告诉 DedeCMS 使用哪个模板文件,以及如何获取数据。
第一步:创建 RSS 模板文件 (rss.htm)
这个文件通常位于你网站的 /templets/ 目录下,或者你当前使用模板的目录下,/templets/default/。
rss.htm 文件的内容遵循 XML 语法,并且使用 DedeCMS 的模板标签来调用数据。
一个完整的、通用的 rss.htm 模板示例
以下是一个标准的、适用于大多数 DedeCMS 网站的 RSS 2.0 模板,你可以根据这个模板进行修改。

(图片来源网络,侵删)
{dede:global name='cfg_webname'/} - RSS订阅
{dede:global name='cfg_rss_description'/}
<language>zh-cn</language>
<copyright>Copyright (C) {dede:global name='cfg_webname'/} All Rights Reserved.</copyright>
<generator>DedeCMS V{dede:global name='cfg_version'/}</generator>
<webMaster>{dede:global name='cfg_adminemail'/}</webMaster>
{dede:arclist row='50' titlelen='100' orderby='pubdate'}
<item><![CDATA[[field:title/]]]></title>
<link>[field:arcurl/]</link>
<description><![CDATA[[field:description function='html2text(@me)'/]]]></description>
<pubDate>[field:pubdate function='strftime("%a, %d %b %Y %H:%M:%S +0800", @me)'/]</pubDate>
<category>[field:typelink/]</category>
<author>[field:writer/]</author>
<guid>[field:arcurl/]</guid>
</item>
{/dede:arclist}
第二步:模板代码详解
让我们逐行解析上面模板中的关键部分:
-
文件头信息
{dede:global name='cfg_webname'/} - RSS订阅 {dede:global name='cfg_rss_description'/}{dede:global name='cfg_webname'/}:调用网站名称。{dede:global name='cfg_rss_description'/}:调用在后台“系统参数”中设置的“RSS描述”。如果没有设置,这里可能为空,你也可以直接写死描述,本站专注于分享...。
-
RSS 元信息
<language>zh-cn</language> <copyright>Copyright (C) {dede:global name='cfg_webname'/} All Rights Reserved.</copyright> <generator>DedeCMS V{dede:global name='cfg_version'/}</generator> <webMaster>{dede:global name='cfg_adminemail'/}</webMaster>- 这些是 RSS 2.0 规范中的标准标签,用于描述频道的基本信息。
language: 语言,中文是zh-cn。copyright: 版权信息。generator: 生成工具,这里显示 DedeCMS 的版本。webMaster: 管理员邮箱,通常调用后台的cfg_adminemail。
-
文章列表
{dede:arclist}
(图片来源网络,侵删){dede:arclist row='50' titlelen='100' orderby='pubdate'} ... {/dede:arclist}- 这是循环输出文章列表的核心标签。
row='50':表示获取最新的 50 篇文章,你可以根据需要修改这个数字。titlelen='100'的长度,防止过长的标题破坏 XML 结构。orderby='pubdate':按发布时间倒序排列,这是 RSS 最常见的排序方式。
-
单篇文章项目
<item><item> <title><![CDATA[[field:title/]]]></title> <link>[field:arcurl/]</link> <description><![CDATA[[field:description function='html2text(@me)'/]]]></description> <pubDate>[field:pubdate function='strftime("%a, %d %b %Y %H:%M:%S +0800", @me)'/]</pubDate> <category>[field:typelink/]</category> <author>[field:writer/]</author> <guid>[field:arcurl/]</link> </item><title>: 文章标题。<![CDATA[ ... ]]>:这是一个非常重要的 XML 语法,它告诉解析器,其中的内容是纯文本,即使里面包含<,>,&等特殊符号也不要解析,防止 RSS 解析错误。强烈建议所有可能包含特殊字符的字段都使用CDATA包裹。
<link>: 文章的永久链接 URL。[field:arcurl/]:直接调用文章的完整链接。
<description>: 文章的摘要或内容。[field:description/]:调用文章摘要,但很多网站文章摘要为空。function='html2text(@me)':这是一个非常实用的功能,它会调用php目录下的html2text.php文件,将文章正文的 HTML 代码([field:body/])转换为纯文本,这样就能在 RSS 中显示文章的主要内容,而不仅仅是空摘要。
<pubDate>: 文章发布日期。function='strftime(...)':这是一个 PHP 函数,用于格式化日期时间。"%a, %d %b %Y %H:%M:%S +0800":这是 RSS 2.0 标准要求的日期格式(Wed, 05 Oct 2025 10:30:00 +0800)。+0800表示东八区。
<category>: 文章所属的分类。[field:typelink/]:调用分类的链接和名称,<category><a href="...">技术</a></category>。
<author>: 文章作者。[field:writer/]:调用文章的作者字段。
<guid>: 文章的唯一标识符。通常使用文章的链接作为 GUID,确保每篇文章的唯一性。
第三步:在后台生成和设置 RSS
模板文件创建好后,你需要在 DedeCMS 后台进行设置,让它生效。
-
登录 DedeCMS 后台。
-
进入“频道模型” -> “自动频道模型”。
- 在左侧的“频道列表”中,找到并点击 “RSS”。
-
配置 RSS 生成规则。
- 命名规则:这里可以自定义 RSS 文件的名称,
rss.xml或feed.xml,通常保持默认即可。 - 列表模板:这是最关键的一步! 点击右侧的“选择”按钮,选择你刚刚创建并上传到
/templets/default/目录下的rss.htm模板文件。 - 最大文档数:这里设置的数字会覆盖你
rss.htm模板中{dede:arclist}的row属性,这里设置为 50,那么生成的 RSS 就只会包含最新的 50 篇文章。 - 更新栏目缓存:勾选此项。
- 命名规则:这里可以自定义 RSS 文件的名称,
-
生成 RSS 文件。
- 在页面底部,点击 “更新HTML” 按钮。
- 系统会根据你设置的规则,生成一个 XML 文件,这个文件通常存放在你的网站根目录下(
/rss.xml)。
-
验证 RSS。
- 在浏览器中访问你生成的 RSS 文件地址(
http://www.yourdomain.com/rss.xml)。 - 如果看到一个格式规范的 XML 代码,并且内容正确,就说明成功了,你也可以使用在线的 RSS 验证工具(如 W3C Feed Validation Service)来检查你的 RSS 是否符合标准。
- 在浏览器中访问你生成的 RSS 文件地址(
常见问题与注意事项
- RSS 描述为空:
cfg_rss_description在后台没有设置,{dede:global name='cfg_rss_description'/}会输出空,直接在模板中替换为你的网站描述即可。 - CDATA 的使用:再次强调,凡是可能包含 HTML 代码或特殊字符的字段(如标题、内容),都应该用
<![CDATA[ ... ]]>包裹起来,这是避免 RSS 解析错误的最佳实践。 - 路径问题:确保你的
rss.htm模板文件位于 DedeCMS 能够找到的目录(如/templets/系统默认目录名/)。 - 只显示摘要:检查
<description>标签,确保你调用的是[field:body/]并使用了html2text函数,而不是[field:description/]。 - 日期格式错误:确保
<pubDate>中使用的strftime格式字符串是正确的,符合 RSS 2.0 规范。
通过以上步骤,你就可以成功创建并配置一个符合标准的 DedeCMS RSS 模板了。
