dede自定义变量如何正确调用?

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

DedeCMS 的自定义变量主要分为两大类:

dede自定义变量调用
(图片来源网络,侵删)
  1. 系统全局变量:由系统在运行时自动生成,如 {dede:global.cfg_webname/} (网站名称)、{dede:global.cfg_weburl/} (网站地址) 等。
  2. 用户自定义变量:由网站管理员在后台设置,或由开发者在模板/标签中定义,用于存储特定的信息,如公司简介、联系方式、QQ 号、备案号等。

我们主要讨论的就是 用户自定义变量 的调用,它的调用方式又根据定义位置的不同而有所区别。


第一步:如何定义/设置自定义变量?

在调用之前,你首先需要创建这个变量,主要有两种方式:

通过后台【基本参数】设置(最常用)

这种方式适合设置网站的全局性、固定不变的变量,比如公司地址、备案号、客服电话等。

  1. 登录 DedeCMS 后台。

    dede自定义变量调用
    (图片来源网络,侵删)
  2. 在左侧菜单栏找到 【系统】 -> 【系统基本参数】

  3. 在打开的页面中,你会看到几个选项卡,通常我们使用 【核心设置】【其他选项】

  4. 找到 “自定义变量” 的设置区域,它通常是一个文本域,里面可能已经有一些示例代码。

  5. 按照以下格式添加你的变量:

    dede自定义变量调用
    (图片来源网络,侵删)
    变量名|变量类型|变量说明|变量值(换行符隔开)

    示例: 假设我们要添加一个“公司地址”变量,变量名为 company_address,值为“北京市朝阳区xxx路xxx号”。

    在自定义变量文本框中输入:

    company_address|text|公司地址|北京市朝阳区xxx路xxx号
    • company_address:变量名(调用时使用)。
    • text:变量类型(text 是单行文本,还有 textarea 多行文本等)。
    • 公司地址:变量说明(方便后台管理)。
    • 北京市朝阳区xxx路xxx号:变量值。
  6. 点击 【保存】 按钮。

在模板文件中直接定义(适用于动态内容)

这种方式适用于在某个特定模板页面中临时需要使用的变量,比如循环列表中某个字段的值。

通常使用 {dede:var} 标签来定义。

示例: 在列表页 list_article.htm 中,你想定义一个变量来存储当前栏目ID。

{dede:var name='typeid' value=''}  <!-- value为空,会自动获取当前栏目ID -->

第二步:如何调用自定义变量?

定义好变量后,就可以在不同的地方调用它们了,调用方式也分为两种。

使用 {dede:global} 标签调用(推荐)

这是调用后台【基本参数】中设置的全局变量的标准方法。

语法:

{dede:global name='变量名'/}

示例: 调用我们刚才在后台设置的“公司地址”变量。

<div class="footer-info">
    <p>公司地址:{dede:global name='company_address'/}</p>
</p>

进阶用法(带默认值): 如果变量可能没有设置,可以提供一个默认值,以防模板报错。

{dede:global name='company_address' default='请设置公司地址'/}

company_address 变量不存在,将显示“请设置公司地址”。

使用 {dede:var} 标签调用

这个标签主要用于调用在模板文件中通过 {dede:var} 定义的变量,或者在某些特定标签(如 {dede:arclist})循环体中调用子变量。

语法:

{dede:var name='变量名'/}

示例 1:调用模板中定义的变量

{dede:var name='typeid'/}  <!-- 会输出上面定义的栏目ID -->

示例 2:在 {dede:arclist} 中调用字段 这是 {dede:var} 一个非常重要的用途,当你在 {dede:arclist} 循环内部时,可以直接使用 var 标签来调用当前文章的字段。

{dede:arclist titlelen='30' row='5'}
    <li>
        <a href="[field:arcurl/]">[field:title/]</a>
        <!-- 调用文章的发布时间 -->
        发布时间:{dede:var name='pubdate' function='MyDate('Y-m-d', @me)'/}
        <!-- 调用文章的点击量 -->
        点击量:{dede:var name='click'/}
    </li>
{/dede:arclist}

注意:{dede:arclist} 等循环标签内部,{dede:var name='pubdate'} 等价于 {dede:field name='pubdate'}{dede:field} 是专门用于调用字段值的标签,在循环内部更常用。{dede:var} 的灵活性在于它还可以结合 function 属性进行数据处理。


总结与对比

场景 推荐标签 语法 示例
调用后台全局变量 {dede:global} {dede:global name='变量名'/} {dede:global name='cfg_webname'/}
调用模板内定义的变量 {dede:var} {dede:var name='变量名'/} {dede:var name='typeid'/}
在循环标签内调用字段 {dede:field}{dede:var} {dede:field name='字段名'/} {dede:arclist}...{dede:field name='title'/}...{/dede:arclist}

常见问题与注意事项

  1. 变量名区分大小写{dede:global name='company_address'/}{dede:global name='Company_Address'/} 是两个不同的变量。
  2. 变量值中的特殊字符:如果变量值包含 或 等特殊字符,可能会导致模板解析错误,尽量避免在变量值中使用这些符号,或者使用 DedeCMS 提供的转义功能。
  3. 缓存问题:DedeCMS 有模板缓存,如果你在后台修改了全局变量,但前台页面没有更新,请进入 【系统】 -> 【一键更新网站】 -> 更新HTML更新缓存
  4. 命名规范:建议给变量名加上统一的前缀,如 my_cfg_cfg_ 已被系统占用),my_qqmy_icp,以避免与系统未来的变量名冲突。

希望这份详细的指南能帮助你完全掌握 DedeCMS 自定义变量的调用!

-- 展开阅读全文 --
头像
调用标签怎么用?
« 上一篇 03-06
dede如何关闭提取关键词功能?
下一篇 » 03-06
取消
微信二维码
支付宝二维码

目录[+]