什么是织梦全局变量?
全局变量,顾名思义,就是在网站的任何一个页面(首页、列表页、内容页、甚至自定义的模板页面)中都可以直接调用的变量。

织梦自带了一些默认的全局变量,
{dede:global.cfg_webname/}:网站名称{dede:global.cfg_weburl/}:网站网址{dede:global.cfg_powerby/}:版权信息
自定义全局变量,就是让你自己创建新的变量,并为其赋值,然后在全站任何地方调用,这非常适用于存放那些不常变化但又需要在多处显示的内容,
- 公司联系方式
- 官方QQ群号
- 备案号信息
- 网站公告
- 统一的广告代码
如何在后台设置自定义全局变量?
这是最基础也是最常用的方法,适合存储文本、链接、HTML代码等。
操作步骤:
-
登录织梦后台:使用你的管理员账号登录。
-
进入变量设置:在左侧菜单栏中,找到并点击 【系统】 -> 【系统基本参数】。
-
切换到“核心设置”:在打开的页面顶部,你会看到几个选项卡,点击 【核心设置】。
-
添加新变量:
- 向下滚动页面,你会看到一个名为“自定义变量”的文本框。
- 这个文本框的格式是:
变量名=变量值。 - 变量名:你希望在模板中调用的名字,通常使用英文字母,
my_contact。 - 变量值:你想要存储的实际内容,可以是文本、网址、HTML代码等。
- 注意:每一行只能定义一个变量。
-
示例: 假设我们要添加一个“网站公告”和一个“客服QQ”,在自定义变量文本框中输入:
site_announcement=网站正在维护中,如有问题请联系客服。 service_qq=12345678 -
保存设置:页面底部有一个 【保存】 按钮,点击它,织梦会自动将你添加的变量保存到数据库中。
如何在模板中调用全局变量?
设置好变量后,调用非常简单,语法格式为:
{dede:global.变量名/}
接上面的例子,在模板文件中调用:
-
调用文本变量(网站公告):
<div class="announcement"> {dede:global.site_announcement/} </div> -
调用纯数字变量(客服QQ):
<a href="http://wpa.qq.com/msgrd?v=3&uin={dede:global.service_qq/}&site=qq&menu=yes" target="_blank"> 联系客服QQ:{dede:global.service_qq/} </a> -
调用HTML代码(例如添加一个统计代码): 假设你添加了一个变量
tongji_code,值是<script>...</script>。{dede:global.tongji_code/}织梦会直接解析其中的HTML标签,无需任何额外处理。
高级用法:通过SQL命令添加和修改变量
当你在模板文件中需要动态地修改或添加全局变量时(在插件开发中),可以使用PHP代码直接操作数据库。
核心数据表:#@__sysconfig
主要字段:
varname:变量名info:变量值(存储的是序列化后的数组,但我们通常直接操作value字段)value:变量值(新版本织梦推荐使用此字段)
PHP代码示例:
这些代码通常写在织梦的 {dede:getsql/} 标签里,或者自定义的PHP页面中。
添加一个新变量
如果变量不存在,则插入一条新记录。
{dede:getsql sql="INSERT INTO `#@__sysconfig` (`varname`, `info`, `value`, `type`) VALUES ('new_variable', '新变量描述', '这是新变量的值', 'string');"}
varname: 变量名info: 变量描述(可选,但建议填写)value: 变量值type: 变量类型,通常为string(字符串)
修改一个已存在的变量
如果变量已存在,则更新其值。
{dede:getsql sql="UPDATE `#@__sysconfig` SET `value` = '这是更新后的值' WHERE `varname` = 'new_variable';"}
删除一个变量
{dede:getsql sql="DELETE FROM `#@__sysconfig` WHERE `varname` = 'new_variable';"}
重要提示:
- 使用SQL操作有风险,请务必在操作前备份数据库。
- 这些操作通常在需要“一键更新”或“初始化配置”的场景下使用,普通网站内容编辑一般不需要。
最佳实践与注意事项
- 命名规范:自定义变量名建议使用有意义的英文,如
cfg_copyright、cfg_company_address,避免使用中文或特殊字符,以防编码出错。 - 内容更新:通过后台【系统基本参数】修改变量后,织梦会自动更新缓存,无需手动刷新,但如果你直接修改了数据库,可能需要清空一下后台的缓存才能在模板中看到最新效果。
- 安全性:不要在全局变量中存储密码等敏感信息,所有通过
{dede:global.xxx/}调用的内容都会直接输出到页面上,如果内容包含恶意JS代码,可能会造成XSS漏洞,虽然织梦有基础过滤,但对于用户提交的内容仍需谨慎。 - 与普通变量的区别:
- 全局变量:在后台统一管理,全站通用,适合存储网站级别的固定信息。
- 普通变量/字段:如文章的标题
{dede:field.title/}、栏目名称{dede:field.typename/},这些是与特定内容或栏目绑定的,不是全局的。
| 功能 | 优点 | 适用场景 |
|---|---|---|
| 后台设置 | 简单直观,无需代码,安全可靠 | 存储网站Logo、备案号、联系方式、公告、广告代码等固定信息。 |
| SQL命令 | 灵活强大,可动态操作,适合程序化 | 插件开发、一键配置、需要根据条件批量修改变量值的场景。 |
对于绝大多数网站管理员和开发者来说,熟练掌握后台设置和模板调用就足以应对99%的需求,希望这份详细的教程能帮助你更好地使用织梦CMS!
