Discuz模板变量用于在HTML中展示动态数据,通过{xxx}语法插入PHP生成的内容。{$\_G['username']}显示用户名,{$\_G['uid']}显示用户ID,{$\_G['setting']['sitename']}显示网站名称,{$\_G'group'}显示用户组名,均属全局变量\_G,可直接调用。开发插件时需在include template()前赋值,如$myvar = 'Hello World',模板中用输出。列表数据使用loop循环,如

Discuz模板变量是实现动态内容展示的核心工具,主要用于在HTML模板中插入由PHP后台程序生成的数据。正确使用这些变量,可以让页面显示用户信息、帖子内容、论坛设置等动态数据。
模板变量的基本语法
Discuz模板中的变量通常以{xxx}的形式出现,系统会自动解析并替换为实际值。
- {$_G['username']}:当前登录用户的用户名
- {$_G['uid']}:当前用户的UID
- {$_G['setting']['sitename']}:网站名称
- {$_G['group']['grouptitle']}:用户所在用户组的名称
这类变量属于全局变量$_G,几乎在所有模板中都可直接调用。
如何在自定义模块或插件中传入变量
如果你开发插件或修改功能模块,需要向模板传递自定义数据,必须在PHP文件中使用include template()前赋值。
示例代码:
$myvar = 'Hello World';include template('diy:mytpl');
在模板文件mytpl.htm中就可以使用:
注意:模板中使用包裹PHP语句,这是Discuz模板的安全注释写法,避免前端显示原始代码。
AiFreePhp(爱免费php企业建站程序是一个免费开源的PHP建站程序),基于PHP + MYSQL 与模板技术,具有产品展示,文章栏目,下载管理,友情链接等功能。无任何限制功能,程序简单实用,可用于中小企业网站建设,不收取任何费用。使用本程序,不可将程序变相转售,二次开发发布。 运行安装目/install/index.php一般要求安装在站点的根目录,不是根目录有试过有没有问题,请大家尽量以
循环输出数据(如列表)
当需要展示多条数据时,比如主题列表,使用loop语法。
PHP中准备数据:
$threadlist = C::t('forum_thread')->fetch_all_by_fid(2);include template('forum/mylist');
在模板mylist.htm中遍历:
这里$thread[tid]和$thread[subject]会自动被替换为每条主题的ID和标题。
常见问题与注意事项
使用模板变量时容易遇到以下情况:
- 变量不显示:检查PHP是否已正确赋值,且模板文件路径无误
- 出现原始代码
{xxx}:说明模板未被解析,可能是缓存未更新,可手动删除data/template/下的缓存文件 - 权限类变量为空:确保用户已登录,部分
$_G变量仅在登录后有效
基本上就这些。只要理解了$_G全局变量的结构和模板传值机制,就能灵活运用Discuz的模板变量系统。调试时多看源码和已有模板写法,能快速掌握规律。









