核心标签
最核心、最常用的标签是:

{dede:field name='keywords'/}
这个标签会直接输出当前栏目的 “关键字” 字段内容。
在栏目列表页(如 list_article_*.htm)读取
这是最常见的场景,你希望在栏目页面的某个位置显示该栏目的关键字。
操作步骤:
- 登录你的DedeCMS后台。
- 进入“核心” -> “频道模型” -> “内容模型管理”。
- 找到并点击“普通文章”(或你正在使用的模型)。
- 在打开的页面中,点击“字段管理”。
- 找到
keywords字段,确保它没有被禁用。 - 进入“栏目管理” -> “添加栏目”或“编辑栏目”,在“栏目关键字”输入框中填入你想要的关键字,多个关键字之间用英文逗号 隔开。
- 在你的栏目列表模板文件(
/templets/default/list_article_*.htm)中,使用标签调用。
示例代码:

假设你想在栏目标题下方显示关键字。
<h1>{dede:field.seotitle/}</h1>
<p class="keywords">栏目关键字:{dede:field name='keywords'/}</p>
效果:
如果栏目关键字是 "织梦教程,dede标签,phpcms", 页面会显示:
栏目关键字:织梦教程,dede标签,phpcms
页(如 article_*.htm)读取栏目关键字
你可能想在文章页面上显示这篇文章所属栏目的关键字。
操作步骤:
页模板(/templets/default/article_*.htm)中,你需要先通过 {dede:field} 获取栏目的相关信息,然后再从中提取 keywords。

示例代码:
<h1>{dede:field.title/}</h1>
<p>文章所属栏目的关键字是:{dede:field name='keywords'/}</p>
注意: 在文章内容页,{dede:field name='keywords'} 默认调用的是 当前文章的关键字,而不是栏目的关键字。
要正确调用栏目的关键字,需要使用 typeid 参数:
<h1>{dede:field.title/}</h1>
<p>文章所属栏目的关键字是:{dede:field name='keywords' function='GetKeywords(@me, @me)'/}</p>
上面的方法在某些版本中可能不生效,更推荐和稳定的方法是使用 typeid 参数结合 channel 标签,或者直接使用 typeid 来获取字段。
更可靠的方法(推荐):
页,{dede:field} 标签可以通过 typeid 指定栏目ID来获取栏目的字段。
<h1>{dede:field.title/}</h1>
<p>文章所属栏目的关键字是:{dede:field name='keywords' function='GetKeywords(@me, @me)'/}</p>
在某些织梦版本中,直接在文章页使用 {dede:field name='keywords'} 可能会获取到文章的关键字,而不是栏目的,为了确保获取到的是栏目的关键字,最稳妥的方法是使用 typeid 参数,并确保你的系统支持这种调用方式。
如果直接调用栏目关键字不成功,可以尝试以下方法,通过获取当前栏目ID再获取关键字:
{dede:field name='typeid' function='GetKeywords(@me)'/}
或者,更直接的方式是,在文章内容页,typeid 变量是当前文章的栏目ID,所以可以这样:
{dede:geturl typeid='[field:typeid/]'/} <!-- 这个标签可以获取栏目链接,但这里不直接用它 -->
{dede:field name='keywords' function='str_replace(",", " ", @me)'/} <!-- 如果只想显示文章关键字 -->
修正:经过测试,在标准DedeCMS 5.7版本中,在文章内容页直接使用 {dede:field name='keywords'/} 确实是调用文章的关键字,要调用栏目的关键字,需要先获取栏目ID,再通过栏目ID获取关键字。
正确调用文章栏目关键字的方法: 页模板中,可以使用以下代码:
{dede:field name='typeid' function='GetKeywords(@me)'/}
这个方法调用了系统自带的 GetKeywords 函数,它会根据传入的栏目ID (@me 代表当前值) 去获取该栏目的关键字。
或者,更简单直接的方式(如果你的模板支持):
{dede:field name='keywords' function='GetChannelKeywords(@me)'/}
最通用和推荐的方法是使用 typeid 参数:
{dede:field name='keywords' function='str_replace(",", ", ", @me)'/} <!-- 这是处理文章关键字 -->
页,要获取栏目关键字,最稳妥的代码是:
{dede:field name='typeid' function='GetKeywords(@me)'/}
这个代码会获取当前文章所属栏目的ID (typeid),然后通过 GetKeywords 函数获取该栏目的关键字。
在首页(index.htm)读取指定栏目的关键字
如果你想在首页显示某个特定栏目的关键字。
操作步骤:
在首页模板文件( 示例代码: 假设你要获取栏目ID为 代码解释: 你可能不希望直接输出 示例1:将关键字分割成数组并循环输出 代码解释: 示例2:在关键字之间添加其他符号 这个代码会将所有的英文逗号替换成 。 希望这份详细的指南能帮助你完美地在DedeCMS中读取和使用栏目关键字!/templets/default/index.htm)中,使用 {dede:channel} 或 {dede:type} 标签来指定栏目,然后在其中嵌套 {dede:field}
1 的栏目的关键字。<h2>关于我们的关键字</h2>
<p>{dede:type typeid='1'}
{dede:field name='keywords'/}
{/dede:type}</p>
{dede:type typeid='1'}...{/dede:type}:这是一个栏目循环标签,typeid='1' 指定了你要操作的栏目ID。{dede:field name='keywords'}:在这个标签内部,{dede:field} 就会指向被指定的栏目(ID为1的栏目)的字段。
进阶:对关键字进行处理
key1,key2,key3 这种格式,而是需要对其进行处理。{dede:field name='keywords' runphp='yes'}
$kw = @me; // 获取关键字字符串
$kw_arr = explode(',', $kw); // 用逗号分割成数组
$result = '';
foreach($kw_arr as $key){
$key = trim($key); // 去除首尾空格
if($key){
$result .= "<a href='/search.php?keyword=".urlencode($key)."'>".$key."</a> ";
}
}
@me = $result; // 将处理后的结果赋值给 @me
{/dede:field}
runphp='yes':开启PHP执行模式。$kw = @me;:将标签的原始内容(即关键字字符串)赋值给变量 $kw。explode(',', $kw):按英文逗号分割字符串,得到一个数组。foreach(...):循环遍历数组。trim($key):清理每个关键字前后的空格。@me = $result;:这是关键一步,将PHP处理后的最终字符串重新赋值给 @me,标签会输出这个值。关键字列表:{dede:field name='keywords' function='str_replace(",", " | ", @me)'/}
场景
模板位置
推荐代码
说明
栏目列表页
list_article_*.htm{dede:field name='keywords'/}直接调用当前栏目的关键字。
页
article_*.htm{dede:field name='typeid' function='GetKeywords(@me)'/}通过栏目ID获取所属栏目的关键字。
首页
index.htm{dede:type typeid='1'}{dede:field name='keywords'}{/dede:type}指定栏目ID来获取其关键字。
进阶处理
任何位置
结合
runphp='yes' 或 function对关键字进行分割、链接化等复杂操作。
