使用织梦官方标签(推荐)
这是最标准、最简单的方法,适用于绝大多数场景,织梦官方标签 {dede:tag} 就是为这个功能设计的。

(图片来源网络,侵删)
标签语法
{dede:tag row='数量' getall='0'}
<a href="[field:link/]">[field:tag/]</a>
{/dede:tag}
参数说明
row='数字':表示要显示的标签数量。row='5'表示只显示5个标签,如果不写,默认显示所有标签。getall='0':表示是否获取当前文章的所有标签。getall='0'(默认值)表示只调用当前文章的标签。getall='1'则会调用网站所有热门标签,这通常不是我们想要的。请务必确保这个参数是0。
完整代码示例
将以下代码放在文章内容页模板(通常是 article_article.htm)的任何你希望显示标签的位置,比如文章标题下方、内容上方或作者信息旁边。
<h1>[field:title/]</h1>
<!-- 文章标签开始 -->
<div class="article-tags">
<span>标签:</span>
{dede:tag row='10' getall='0'}
<a href="[field:link/]">[field:tag/]</a>
{dede:tag}
</div>
<!-- 文章标签结束 -->
<div class="article-content">
[field:body/]
</div>
代码解释:
<div class="article-tags">...</div>:我们用一个div包裹标签,方便后续用CSS进行样式美化。<span>标签:</span>:可以加一个提示文字,让用户知道这是什么。{dede:tag row='10' getall='0'}:调用当前文章的最多10个标签。<a href="[field:link/]">[field:tag/]</a>:[field:link/]:这是标签的链接地址,点击后会跳转到该标签的列表页面。[field:tag/]:这是标签的文本内容。
直接调用PHP代码(更灵活)
如果你需要对标签进行更复杂的逻辑处理,或者官方标签无法满足你的需求,可以直接在模板文件中嵌入PHP代码。
操作步骤
- 打开你的文章内容页模板文件(
/templets/default/article_article.htm)。 - 在需要显示标签的位置,粘贴以下PHP代码。
PHP代码示例
<h1>[field:title/]</h1>
<!-- PHP代码调用标签开始 -->
<div class="article-tags">
<span>标签:</span>
<?php
$tags = GetTags(@me);
if($tags){
$tags = explode(',', $tags);
foreach($tags as $key => $value){
// 为了SEO,建议对标签进行HTML实体编码
$value_cn = htmlspecialchars($value);
// 生成标签链接
$tag_url = $GLOBALS['cfg_cmspath'] . "/tags.php?/".urlencode($value)."/";
echo "<a href='{$tag_url}'>{$value_cn}</a> ";
}
}
?>
</div>
<!-- PHP代码调用标签结束 -->
<div class="article-content">
[field:body/]
</div>
代码解释:

(图片来源网络,侵删)
<?php ... ?>:这是PHP代码的标记。$tags = GetTags(@me);:这是织梦的核心函数,用于获取当前文章(@me代表当前文章内容)的标签字符串,多个标签用英文逗号隔开,"织梦,CMS,教程"。if($tags){ ... }:判断是否获取到了标签,如果没有标签(例如文章发布时未添加标签),则不显示任何内容。$tags = explode(',', $tags);:使用explode函数将逗号分隔的标签字符串转换成一个数组,方便我们循环遍历。foreach($tags as $key => $value){ ... }:遍历标签数组。$value_cn = htmlspecialchars($value);:对标签内容进行HTML实体编码,防止XSS攻击,是良好的编程习惯。$tag_url = $GLOBALS['cfg_cmspath'] . "/tags.php?/".urlencode($value)."/";:$GLOBALS['cfg_cmspath']:获取网站的根目录路径,确保链接正确。/tags.php:这是织梦标签列表的默认页面。urlencode($value):对标签进行URL编码,确保特殊字符(如中文)在URL中能正确显示。
echo "<a href='{$tag_url}'>{$value_cn}</a> ";:输出每个标签的链接。
最佳实践与样式美化
无论使用哪种方法,最终都需要用CSS来美化标签的显示,让它看起来更美观。
CSS样式示例
在你的模板的CSS文件(如 /templets/default/style/dedecms.css)中添加以下样式:
/* 文章标签容器 */
.article-tags {
margin: 15px 0;
padding: 10px;
border-bottom: 1px dashed #e0e0e0;
}
/* 标签提示文字 */
.article-tags span {
color: #666;
margin-right: 8px;
}
/* 标签链接样式 */
.article-tags a {
display: inline-block; /* 让链接可以设置内边距和外边距 */
margin: 0 5px 5px 0; /* 外边距:上右下左 */
padding: 3px 10px;
background-color: #f0f0f0;
color: #333;
text-decoration: none; /* 去掉下划线 */
border-radius: 12px; /* 圆角 */
font-size: 12px;
transition: all 0.3s ease; /* 添加过渡效果 */
}
/* 鼠标悬停时的样式 */
.article-tags a:hover {
background-color: #007bff;
color: #ffffff;
}
| 方法 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|
| 官方标签 | 简单、安全、官方推荐 | 灵活性较低,功能固定 | 绝大多数情况,特别是新手或标准需求。 |
| PHP代码 | 灵活性极高,可自定义逻辑和格式 | 需要一定的PHP知识,有出错风险 | 需要对标签进行特殊处理,比如过滤、排序、或与其他逻辑结合时。 |
对于99%的用户,强烈推荐使用方法一(官方标签),因为它足够好用且稳定,只有在官方标签无法满足你的特定需求时,才考虑使用方法二。

(图片来源网络,侵删)
