dede列表页标题如何调用?

99ANYc3cd6
预计阅读时长 11 分钟
位置: 首页 DEDE建站 正文

使用系统内置的 {dede:field.title/} 标签 (最常用)

这是最简单、最直接的方法,适用于大多数情况。

dede列表页标题调用
(图片来源网络,侵删)

标签代码

在列表页模板文件(通常是 /templets/default/list_artlist.htm 或你自定义的模板文件)的 <title> 标签内,使用以下代码:

代码解析

  • {dede:field.title/}:这个标签会自动获取当前列表页所属的栏目名称
  • {dede:global.cfg_webname/}:这个标签调用的是你在 DedeCMS 后台设置的网站全局名称(在“系统” -> “系统基本参数” -> “站点设置”中可以找到)。
  • 各部分之间的分隔符,你可以根据喜好换成 、_ 或者其他任何字符。

适用场景

当你希望列表页的标题严格按照“栏目名 - 网站名”的格式显示时,这个方法完美适用。


自定义列表页标题 (高级用法)

如果你想让列表页的标题更灵活,比如在栏目名前加上“列表”字样,或者根据不同栏目显示不同的前缀,就需要使用更高级的 if 判断语句。

核心思路

使用 {dede:field.title/} 获取栏目名,然后用 if 语句进行判断和字符串拼接。

dede列表页标题调用
(图片来源网络,侵删)

示例代码

将以下代码放入你的 <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/} 会是空值,导致标题不理想。

dede列表页标题调用
(图片来源网络,侵删)

解决方案

调用中增加一个判断,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 是否为空的判断。 防止首页标题显示异常。

操作步骤:

  1. 登录你的 DedeCMS 后台。
  2. 进入“模板” -> “默认模板管理”。
  3. 找到并点击你当前使用的列表页模板(list_artlist.htm)后面的“修改”按钮。
  4. 在模板代码中找到 <title></title>
  5. 将上述推荐代码替换掉 <title></title> 之间的原有内容。
  6. 点击“保存”按钮。
  7. 去“生成” -> “一键更新网站” -> “更新HTML”,重新生成你的列表页,即可看到效果。

希望这些详细的解释能帮助你完美地设置 DedeCMS 列表页的标题!

-- 展开阅读全文 --
头像
HTML5织梦模板如何快速适配与优化?
« 上一篇 今天
C语言学生信息管理系统如何设计与实现?
下一篇 » 今天

相关文章

取消
微信二维码
支付宝二维码