下面我将从基础调用到高级应用,为你详细讲解织梦CMS中调用文章标签的各种方法。

(图片来源网络,侵删)
基础调用:在文章内容页(article_article.htm)调用
这是最简单的情况,在文章的详情页,你希望显示这篇文章本身的所有标签。
适用模板文件: /templets/default/article_article.htm
方法: 使用织梦的内置标签 {dede:tag}。
代码示例:

(图片来源网络,侵删)
{dede:tag}
<a href="[field:link/]" title="[field:tag /]">[field:tag /]</a>
{/dede:tag}
代码解析:
{dede:tag}...{/dede:tag}:这是一个循环标签,会遍历当前文章的所有标签。[field:link/]:这是最重要的属性,它自动生成了指向该标签聚合页面的链接,你不需要手动拼接URL。[field:tag/]:输出标签的名称。"[field:tag /]"为链接添加title` 属性,有利于SEO和用户体验。
效果:
如果一篇文章有标签“织梦CMS”、“建站教程”,那么上面的代码会生成类似这样的HTML:
<a href="/tags.php?/zhimengcms/" title="织梦CMS">织梦CMS</a> <a href="/tags.php?/jiaocheng/" title="建站教程">建站教程</a>
常规调用:在列表页、首页等调用其他文章的标签
这种情况更常见,比如在文章列表页,你希望在每篇文章的标题下方显示该文章的几个标签。
适用模板文件:

(图片来源网络,侵删)
- 首页:
/templets/default/index.htm - 栏目列表页:
/templets/default/list_栏目ID.htm - 搜索页等
方法: 同样使用 {dede:tag} 标签,但需要通过 row 属性来限制显示的标签数量。
代码示例(在列表页循环中调用):
{dede:arclist titlelen='30' row='10'}
<h3><a href="[field:arcurl/]">[field:title/]</a></h3>
<!-- 在这里调用标签,只显示前3个 -->
{dede:tag row='3' getall='0'}
<a href="[field:link/]" class="tag">[field:tag/]</a>
{/dede:tag}
<hr>
{/dede:arclist}
代码解析:
{dede:arclist}:这是文章列表的循环标签。{dede:tag row='3'}:在arclist的循环内部,再次使用tag标签。row='3':表示只显示当前文章的前3个getall='0':这个属性可以省略,默认就是0,表示按row的数量来获取,如果设为1,则获取所有标签(但通常配合row使用时设为0)。
[field:link/]和[field:tag/]:与第一种情况中的用法完全相同。
效果: 列表中的每一篇文章下面,都会显示最多3个可点击的标签链接。
高级应用:调用指定栏目或全站的热门标签
你可能想在侧边栏显示一个“热门标签”云,这些标签可以是全站的,也可以是指定栏目的。
调用全站热门标签
适用场景: 侧边栏、页脚等,展示网站的核心关键词。
代码示例:
<div class="hot-tags">
<h3>热门标签</h3>
{dede:tag row='30' sort='hot'}
<a href="[field:link/]" title="[field:tag/] ([field:total/])">[field:tag/]</a>
{dede:tag}
</div>
代码解析:
{dede:tag row='30' sort='hot'}:row='30':显示30个热门标签。sort='hot':核心属性,表示按“热门度”排序,热门度通常由标签被使用的次数决定。
[field:total/]:这是一个非常有用的属性,它表示该标签被引用的总次数,我们可以用它来显示标签的热门程度,或者在CSS中动态调整标签的样式。
调用指定栏目下的热门标签
适用场景: 在一个技术博客的“前端开发”栏目页,只显示“前端开发”相关的热门标签。
代码示例:
<div class="channel-tags">
<h3>本栏目热门标签</h3>
{dede:tag row='20' sort='hot' typeid='栏目ID'}
<a href="[field:link/]" title="[field:tag/] ([field:total/])">[field:tag/]</a>
{dede:tag}
</div>
代码解析:
{dede:tag ... typeid='栏目ID'}:typeid='栏目ID':核心属性,用于限制标签的范围,将其替换为你想要的目标栏目的ID即可。- 其他属性如
row和sort与全站热门标签用法一致。
标签云(Tag Cloud)效果
上面的热门标签已经是一个简单的标签云了,我们可以利用 [field:total/] 属性,结合CSS,创建一个视觉上更有冲击力的标签云。
HTML部分:
<div class="tagcloud">
{dede:tag row='50' sort='hot'}
<a href="[field:link/]" style="font-size:[field:total/]px">[field:tag/]</a>
{dede:tag}
</div>
CSS部分 (可以放在你的CSS文件中):
.tagcloud {
line-height: 2.5;
padding: 10px;
}
.tagcloud a {
display: inline-block; /* 让a标签可以设置宽高和margin */
margin: 5px;
padding: 2px 8px;
background-color: #f0f0f0;
border-radius: 12px;
color: #333;
text-decoration: none;
white-space: nowrap; /* 防止文字换行 */
/* 注意:这里的字体大小由内联style动态设置,CSS中可以设置一个基础大小 */
font-size: 12px; /* 基础大小 */
}
/* 鼠标悬停效果 */
.tagcloud a:hover {
background-color: #007bff;
color: #fff;
}
实现原理:
- 我们直接在内联样式中设置了
font-size: [field:total/]px。 [field:total/]的值是数字,5”、“15”、“30”。- 这样,使用次数越多的标签,
total值越大,显示的字体也就越大,从而形成了标签云的视觉效果。 - 注意: 这种直接使用
total作为像素值的方法可能不够灵活,更好的做法是使用CSS变量或在PHP中进行范围计算,然后赋予不同的CSS类名(如tag-level-1,tag-level-2等)。
常见问题与注意事项
-
标签没有显示出来?
- 检查文章是否已添加标签: 进入后台编辑文章,确保在“标签”文本框中输入了标签,并且用英文逗号隔开(如
织梦CMS, 建站教程)。 - 检查标签是否已生成: 有时添加标签后需要更新相关页面才能显示,可以去“核心” -> “批量维护” -> “一键更新网站缓存”中更新一下。
- 检查模板标签拼写: 确保标签名称
{dede:tag}和字段名[field:link/]等拼写正确。
- 检查文章是否已添加标签: 进入后台编辑文章,确保在“标签”文本框中输入了标签,并且用英文逗号隔开(如
-
标签链接指向哪里?
- 默认情况下,所有标签链接都会指向
tags.php?/标签名/这个页面,这个页面是织梦系统自带的标签聚合页,会列出所有带有该标签的文章。
- 默认情况下,所有标签链接都会指向
-
如何获取标签的ID?
- 在
{dede:tag}标签中,可以使用[field:id/]来获取标签的ID,虽然不常用,但在某些二次开发场景下可能会用到。
- 在
| 调用场景 | 核心标签代码 | 关键属性/说明 |
|---|---|---|
| 页 | {dede:tag}<a href="[field:link/]">[field:tag/]</a>{/dede:tag} |
基础用法,显示当前文章所有标签。 |
| 列表页/首页 | {dede:arclist}...{dede:tag row='3'}...{/dede:tag}{/dede:arclist} |
在 arclist 循环内部使用,row 限制显示数量。 |
| 全站热门标签 | {dede:tag row='30' sort='hot'}...{/dede:tag} |
sort='hot' 按热门度排序。 |
| 指定栏目标签 | {dede:tag typeid='栏目ID' row='20'}...{/dede:tag} |
typeid 限制标签来源栏目。 |
| 标签云效果 | <a style="font-size:[field:total/]px">[field:tag/]</a> |
利用 [field:total/] 动态设置字体大小。 |
希望这份详细的指南能帮助你完全掌握织梦CMS中标签的调用!
