使用系统自带标签(最推荐、最标准)
DedeCMS 系统本身提供了强大的标签功能来实现这个需求,无需修改任何核心文件,安全且易于维护。

(图片来源网络,侵删)
实现步骤:
-
确保文章已有关键词
- 登录 DedeCMS 后台。
- 进入“[核心]-[内容模型管理]”,选择你使用的文章模型(通常是“文章”),点击“字段管理”。
- 找到
keywords字段,确保它是“启用”状态。 - 发布或编辑文章时,在“关键词”输入框中填写关键词,多个关键词请用英文逗号 隔开,
DedeCMS,关键词,标签。
-
页模板中添加标签
- 登录 DedeCMS 后台,进入“[模板]-[默认模板管理]”。
- 找到并打开你正在使用的文章内容页模板,文件名通常是
article_article.htm。 - 在你希望显示关键词标签的位置(例如文章标题下方、正文上方、作者信息旁边等),插入以下代码:
{dede:tag type='current'/}这就是最核心的标签。
type='current'表示调用当前文章的关键词。 -
美化标签显示(可选) 默认情况下,
{dede:tag}标签会直接输出<a>链接,如果需要添加一些样式(比如间距、背景色等),你可以使用list属性来获取标签数组,然后进行自定义循环输出。
(图片来源网络,侵删)你想要实现“标签1, 标签2”这样的效果,可以修改代码如下:
<!-- 方式一:使用list属性进行自定义循环 --> <div class="article-tags"> <span>标签:</span> {dede:tag type='current' sort='hot' getall='0'} <a href="[field:link/]" title="[field:tag /]">[field:tag /]</a> {/dede:tag} </div>代码解释:
type='current':调用当前文章的关键词。sort='hot':按关键词的热度排序(可选,也可以用sort='count'按使用次数排序)。getall='0':是否获取全站所有关键词(设为 0 只获取当前文章的)。[field:link/]:关键词的链接地址。[field:tag/]:关键词的文本。
你可以给包含
.article-tags的div添加 CSS 样式,让标签更好看。
手动调用(灵活,适合有基础的用户)
如果你对 PHP 和模板标签有一定了解,并且想进行更复杂的判断,可以使用 GetTags 函数手动调用。

(图片来源网络,侵删)
实现步骤:
-
同样,确保文章已有关键词(同方法第一步)。
-
在模板中手动调用 在
article_article.htm模板的相应位置,添加以下代码:<!-- 调用当前文章关键词并循环输出 --> {dede:field name='keywords' runphp='yes'} if(!empty(@me)){ $tags = explode(',', @me); $result = ''; foreach($tags as $tag){ $url = "/tags.php?/".urlencode($tag)."/"; // DedeCMS 默认的标签链接规则 $result .= "<a href='{$url}' title='{$tag}'>{$tag}</a> "; } @me = $result; }else{ @me = '暂无标签'; } {/dede:field}
代码解释:
{dede:field name='keywords' runphp='yes'}:获取当前文章的keywords字段值,并启用 PHP 解析。explode(',', @me):将关键词字符串(用逗号分隔)转换成一个数组。foreach($tags as $tag):循环遍历这个数组。urlencode($tag):对关键词进行 URL 编码,确保链接有效。$url = "/tags.php?/".urlencode($tag)."/";:构建标签页的链接,如果你的网站启用了伪静态,这个链接可能是/tag/关键词.html格式,请根据你的实际情况修改。@me = $result;:将最终拼接好的 HTML 字符串赋值给@me,从而在页面上输出。
修改 PHP 文件(不推荐,有风险)
这种方法直接修改 DedeCMS 的核心文件,虽然可以实现,但非常不推荐,因为:
- 升级风险:当你升级 DedeCMS 版本时,这些修改会被覆盖,导致功能失效。
- 安全性:修改核心文件可能引入安全漏洞。
- 维护困难:代码耦合度高,不易维护。
如果你仍然坚持,可以参考以下思路(请谨慎操作):
修改 include/helpers/archive.helper.php 文件,找到与关键词相关的函数(如 GetTags()),修改其默认行为,让它自动在内容中插入标签,但这通常不是最佳实践。
总结与推荐
| 方法 | 优点 | 缺点 | 推荐度 |
|---|---|---|---|
| 系统自带标签 | 安全、标准、易于维护、无需修改核心文件 | 灵活性相对较低 | ★★★★★ (强烈推荐) |
| 手动调用 | 非常灵活,可以完全自定义输出格式和链接 | 需要一定的 PHP 和模板知识,容易出错 | ★★★★☆ (适合有一定基础的用户) |
| 修改PHP文件 | 功能强大,可以深度定制 | 有风险,升级困难,不安全 | ★☆☆☆☆ (不推荐,仅作为最后手段) |
对于绝大多数用户来说,强烈推荐使用方法一,它简单、直接,并且符合 DedeCMS 的设计规范,如果方法一无法满足你的特殊样式需求,再考虑使用方法二。
