调用单个文章的关键字(最常用)
页(article_article.htm)中,显示该文章自身所设定的关键字,最简单的方法是使用DedeCMS内置的标签。

简单调用(纯文本)
直接调用关键字,并用逗号隔开。
代码:
[field:keywords/]
说明:
[field:keywords/]是一个字段调用标签,它会直接输出你在后台编辑文章时,在“关键字”输入框里填写的内容。- 如果关键字之间是用英文逗号()隔开的,它会原样输出,如果用的是其他符号,也会原样输出。
示例:
如果后台文章关键字填写为 织梦CMS,建站教程,dede标签,那么使用 [field:keywords/] 后,页面会显示:
织梦CMS,建站教程,dede标签

带链接的调用(推荐)
这种方式不仅显示关键字,还会为每个关键字生成一个链接,链接到该关键字的搜索列表页,这有利于SEO和用户体验。
代码:
{dede:tag type='list'}
<a href='[field:tagurl/]'>[field:tag/]</a>
{/dede:tag}
说明:
{dede:tag}是专门用于调用文章关键字的标签。type='list':表示以列表形式输出,即每个关键字都作为一个独立的项。[field:tagurl/]:获取该关键字的URL链接,这个链接会自动跳转到包含该关键字的搜索结果页面。[field:tag/]:获取关键字文本。
示例:
如果关键字是 织梦CMS,建站教程,dede标签,使用上述代码后,页面会显示:
<a href='/plus/search.php?keyword=织梦CMS'>织梦CMS</a><a href='/plus/search.php?keyword=建站教程'>建站教程</a><a href='/plus/search.php?keyword=dede标签'>dede标签</a>

在浏览器中,它会显示为: [织梦CMS] [建站教程] [dede标签]
并且每个词都是可点击的。
自定义分隔符和样式
你可以在 {dede:tag} 标签中自由控制输出格式,比如添加CSS类、修改分隔符等。
代码:
<span class="article-tags">
<strong>标签:</strong>
{dede:tag type='list'}
<a href='[field:tagurl/]' class='tag-link'>[field:tag/]</a>
[field:tag runphp='yes']@me == @me[count(@me)-1] ? '' : ',';[/field:tag]
{/dede:tag}
</span>
说明:
class='tag-link':给每个链接添加了一个CSS类,方便你用CSS样式控制。[field:tag runphp='yes']...[/field:tag]:这是一个非常强大的技巧。runphp='yes'表示启用PHP解析。@me代表当前字段的值,在这里是一个包含所有关键字的数组。count(@me)-1获取数组的最后一个元素的索引。@me == @me[count(@me)-1] ? '' : ',';的意思是:如果当前关键字是最后一个,则不输出任何内容;否则,输出一个英文逗号。- 这样就能完美地在每个关键字后面加上逗号,但最后一个不加。
最终效果:
<span class="article-tags"><strong>标签:</strong><a href='...' class='tag-link'>织梦CMS</a>,<a href='...' class='tag-link'>建站教程</a>,<a href='...' class='tag-link'>dede标签</a></span>
调用全站热门关键字
这种方法用于在网站侧边栏、页脚等公共区域,显示全站使用频率最高的关键字。
代码:
{dede:hotwords num='10' subday='30' maxlength='20'}
<a href='[field:link/]'>[field:keyword/]</a>
{/dede:hotwords}
参数说明:
num='10':显示的关键字数量,这里是10个。subday='30':统计的时间范围,这里是30天内(最近一个月)。maxlength='20':关键字的显示长度,超过20个字符会被截断。[field:link/]:指向该关键字搜索页的链接。[field:keyword/]:关键字文本。
调用指定栏目或频道的文章关键字
这种方法比较复杂,通常需要结合SQL查询来实现,你想在首页调用某个指定栏目下所有文章的关键字。
示例:调用栏目ID为 1 的所有文章的关键字
{dede:sql sql="SELECT keywords FROM dede_archives WHERE typeid=1 AND keywords<>'' GROUP BY keywords ORDER BY rand() LIMIT 10"}
<a href='/plus/search.php?keyword=[field:keywords/]'>[field:keywords/]</a>
{/dede:sql}
代码解释:
{dede:sql}:执行自定义SQL语句的标签。SELECT keywords FROM dede_archives:从dede_archives(文章主表) 中查询keywords字段。WHERE typeid=1:筛选条件,只查询栏目ID为1的文章。AND keywords<>'':并且关键字不能为空。GROUP BY keywords:按关键字分组,避免重复。ORDER BY rand() LIMIT 10:随机排序并只取10个结果。[field:keywords/]:在循环中输出查询到的关键字。
注意:
- 直接使用SQL标签有一定的安全风险,请确保你的网站有良好的安全防护,并且SQL语句是你自己写的,不要直接复制来源不明的代码。
dede_archives是DedeCMS默认的表前缀,如果你的网站修改了表前缀,需要相应地更改。
总结与最佳实践
| 需求场景 | 推荐标签 | 优点 |
|---|---|---|
| 页显示本文关键字 | {dede:tag type='list'}...{/dede:tag} |
功能强大,自带链接,SEO友好,推荐使用。 |
| 简单显示本文关键字(无链接) | [field:keywords/] |
最简单,速度快。 |
| 在公共区域显示全站热门标签 | {dede:hotwords}...{/dede:hotwords} |
方便展示网站热点,增加用户粘性。 |
| 调用特定栏目标签(高级) | {dede:sql}...{/dede:sql} |
灵活性最高,但需要一定的SQL知识。 |
使用建议:
- 在文章页:强烈推荐使用 方法二(带链接的调用) 或其变体,因为它对SEO最有利。
- 在列表页或首页:如果你想显示每篇文章的关键字,可以直接在列表循环中使用
[field:keywords/]或{dede:tag}- 在侧边栏/页脚:使用 方法三(调用全站热门关键字) 来展示网站的标签云。
希望这些详细的解释和代码示例能帮助你完美地在DedeCMS中调用文章关键字!
