使用系统内置的 {dede:field.title/} 标签 (最常用)
这是最简单、最直接的方法,适用于大多数情况。

(图片来源网络,侵删)
标签代码
在列表页模板文件(通常是 /templets/default/list_artlist.htm 或你自定义的模板文件)的 <title> 标签内,使用以下代码:
代码解析
{dede:field.title/}:这个标签会自动获取当前列表页所属的栏目名称。{dede:global.cfg_webname/}:这个标签调用的是你在 DedeCMS 后台设置的网站全局名称(在“系统” -> “系统基本参数” -> “站点设置”中可以找到)。- 各部分之间的分隔符,你可以根据喜好换成 、
_或者其他任何字符。
适用场景
当你希望列表页的标题严格按照“栏目名 - 网站名”的格式显示时,这个方法完美适用。
自定义列表页标题 (高级用法)
如果你想让列表页的标题更灵活,比如在栏目名前加上“列表”字样,或者根据不同栏目显示不同的前缀,就需要使用更高级的 if 判断语句。
核心思路
使用 {dede:field.title/} 获取栏目名,然后用 if 语句进行判断和字符串拼接。

(图片来源网络,侵删)
示例代码
将以下代码放入你的 <title> 标签中:
{dede:field.name runphp='yes'}
if(@me=='') @me = @me; //如果栏目名为空,则不做处理
else @me = "列表 - " . @me; //否则,在栏目名前加上“列表 - ”
{/dede:field.name}
- {dede:global.cfg_webname/}
代码解析
{dede:field.name runphp='yes'}:这里我们使用field.name获取栏目名称,并开启runphp='yes'允许在标签内执行 PHP 代码。if(@me=='') @me = @me;:这是一个判断。@me是 DedeCMS 模板引擎中代表当前标签值的变量,这句代码的意思是:如果当前栏目名为空(比如首页列表页),就不做任何修改。else @me = "列表 - " . @me;:如果栏目名不为空,就把@me的值重新赋值为"列表 - " + 原栏目名。- {dede:global.cfg_webname/}:最后拼接上网站名称。
最终效果:如果当前栏目是“产品”,那么标题就会显示为“列表 - 产品 - 我的公司名称”。
更复杂的应用:不同栏目不同前缀
如果你想让“新闻”栏目显示“新闻列表 - ...”,而“产品”栏目显示“产品展示 - ...”,可以这样写:
{dede:field.name runphp='yes'}
$typename = @me;
if($typename == '新闻') {
@me = "新闻列表 - " . $typename;
} elseif($typename == '产品') {
@me = "产品展示 - " . $typename;
} else {
@me = $typename; //其他栏目则只显示栏目名
}
{/dede:field.name}
- {dede:global.cfg_webname/}
针对首页列表页的特殊处理
列表页模板也会被首页调用(首页显示最新文章列表),这时 {dede:field.title/} 会是空值,导致标题不理想。

(图片来源网络,侵删)
解决方案
调用中增加一个判断,field.title 为空,就显示一个默认的首页标题。
{dede:field.title runphp='yes'}
if(@me == '') {
@me = '欢迎来到' . '{dede:global.cfg_webname/}'; //首页显示的默认标题
}
{/dede:field.title}
- {dede:global.cfg_webname/}
代码解析:
- 当在非列表页(如首页)调用此模板时,
{dede:field.title/}的值为空。 if(@me == '')这个判断条件成立。@me会被重新赋值为'欢迎来到' . '{dede:global.cfg_webname/}'。- 最终首页标题会显示为“欢迎来到我的公司名称 - 我的公司名称”(虽然有点重复,但你可以修改成你想要的,比如只显示
@me = '{dede:global.cfg_webname/}')。
总结与最佳实践
| 需求场景 | 推荐代码 | 说明 |
|---|---|---|
| 标准列表页标题 | <title>{dede:field.title/} - {dede:global.cfg_webname/}</title> |
最常用,简单直接。 |
| 统一添加“列表”前缀 | <title>{dede:field.name runphp='yes'}@me="列表 - ".@me;{/dede:field.name} - {dede:global.cfg_webname/}</title> |
适用于所有列表页标题风格统一。 |
| 不同栏目不同前缀 | 使用 if/elseif/else 进行判断和拼接。 |
灵活性最高,适合复杂的网站结构。 |
| 兼容首页列表调用 | 标签中增加对 @me 是否为空的判断。 |
防止首页标题显示异常。 |
操作步骤:
- 登录你的 DedeCMS 后台。
- 进入“模板” -> “默认模板管理”。
- 找到并点击你当前使用的列表页模板(
list_artlist.htm)后面的“修改”按钮。 - 在模板代码中找到
<title>和</title>- 将上述推荐代码替换掉
<title>和</title>之间的原有内容。- 点击“保存”按钮。
- 去“生成” -> “一键更新网站” -> “更新HTML”,重新生成你的列表页,即可看到效果。
- 将上述推荐代码替换掉
希望这些详细的解释能帮助你完美地设置 DedeCMS 列表页的标题!
