新手必看!DedeCMS 全局标签超全攻略,一文搞定模板调用
宝子们!做 DedeCMS 模板时,全局标签堪称 “万能钥匙”,能在所有页面畅通无阻地调取数据!今天手把手拆解最常用的arclist、channel、loop等标签,附超详细参数解析 + 实战范例,小白也能秒变模板高手~
一、「万能列表王」arclist:90% 的列表调用都靠它
📌 核心功能
调取文章、商品等主从表模型数据,imglist、imginfolist等都是它的 “马甲”,换个参数就能切换显示风格,新手必学!
📝 语法公式
markdown
{dede:arclisttypeid='' <!-- 栏目ID,首页可用逗号分隔多个栏目 -->row='10' <!-- 显示条数,默认10条 -->titlelen='30' <!-- 标题长度,超出自动截断 -->img <!-- 缩略图宽度 -->orderby='pubdate' <!-- 排序方式,支持hot/click/pubdate等 -->}<a href='[field:arcurl/]'>[field:title/]</a> <!-- 标题链接 --><p>[field:infos/]...</p> <!-- 内容简介 -->{/dede:arclist}
⚙️ 参数解析(新手必记!)
| 参数名 | 作用 | 范例 |
|---|---|---|
col |
分栏显示,col='2'显示 2 列,5.3 + 版本建议用<div>+CSS实现多列布局 |
<style>div{float:left;:50%}</style>{dede:arclist col='2'}...</div> |
flag |
标记特殊内容:头条h、推荐c、图片p,多个标记用逗号分隔 |
flag='h,c' 筛选头条 + 推荐文章 |
limit |
限定记录范围,limit='1,2'表示从第 1 条开始取 2 条(起始 ID 从 0 开始) |
limit='0,5' 调取前 5 条数据 |
subday |
限定天数内的文档,subday='30'表示 30 天内发布的内容 |
subday='7' 显示一周内新文章 |
✨ 实战技巧
给当天新内容加 “new” 标记:
markdown
[field:senddate runphp='yes']$ntime = time();if(($ntime - @me) < 86400) @me = "<font color='red'>(new)</font>";[/field:senddate]
多列布局避坑:col>1时默认用表格布局,建议用 CSS 实现响应式:
markdown
<div style="display:flex;gap:20px;">{dede:arclist row='10' col='2'}<div style="flex:1;">[field:textlink/]</div>{/dede:arclist}</div>
二、「栏目导航神器」channel:顶部菜单全靠它
📌 核心功能
生成网站栏目导航,支持顶级栏目、子栏目、当前栏目高亮,后台改栏目顺序后自动同步!
📝 语法公式
markdown
{dede:channeltype='top' <!-- top=顶级栏目,son=子栏目,self=同级栏目 -->currentstyle="<li>~typename~</li>" <!-- 当前栏目样式 -->}<li><a href='[field:typelink/]'>[field:typename/]</a></li>{/dede:channel}
✨ 进阶玩法
SEO 优化:去除链接中的 index.html
markdown
{dede:channel type='top'}<li><a href='[field:typeurl function="str_replace("index.html","",@me)"/]'>[field:typename/]</a></li>{/dede:channel}
多级子栏目嵌套(适合复杂导航):
markdown
{dede:channel type='top'}<dt>[field:typename/]</dt>{dede:channel type='son' typeid='[field:id/]'}<dd><a href='[field:typelink/]'>[field:typename/]</a></dd>{/dede:channel}{/dede:channel}
三、「万能数据调用」loop:跨表查询全搞定
📌 核心功能
直接查询数据库表,支持任意表(包括非 DedeCMS 表),适合调用会员、评论等数据。
📝 语法公式
markdown
{dede:looptable='#@__archives' <!-- 表名,#@__代表系统表前缀 -->sort='click' <!-- 排序字段,如click=点击数 -->if='mid=1' <!-- 查询条件,如mid=1表示用户ID=1 -->}<a href='[field:arcurl/]'>[field:title/]</a>(点击:[field:click/]){/dede:loop}
✨ 实战场景
调取同数据库论坛会员:
markdown
{dede:loop table='phpwind87.pw_members' sort='uid' orderway='asc'}[field:uid/] - [field:username/]{/dede:loop}
筛选高分文章:
markdown
{dede:loop table='#@__archives' if='scores>80' row='5'}<strong>[field:title/]</strong> 得分:[field:scores/]{/dede:loop}
四、「全局配置管家」global:调取系统参数快准狠
📌 核心功能
获取系统配置变量,如网站名称、域名、版权信息,所有页面通用!
📝 语法公式
markdown
{dede:global name='cfg_webname'/} <!-- 网站名称 -->{dede:global name='cfg_cmspath'/} <!-- 网站根目录,如http://www.example.com -->
⚠️ 注意事项
- 变量名不加
$,如系统变量$cfg_webname对应name='cfg_webname' - 支持所有系统配置(除数据库密码),直接写在模板任意位置即可调用
五、「标签对比表」快速选对工具
| 标签 | 适用场景 | 核心优势 | 新手易错点 |
|---|---|---|---|
| arclist | 文章 / 商品列表 | 主从表模型通用,支持缩略图、排序 | col属性 5.3 + 版本需配合 CSS 使用 |
| channel | 栏目导航 | 支持多级栏目、当前栏目高亮 | type参数需根据模板环境选择(top/son/self) |
| loop | 跨表 / 自定义查询 | 任意表数据调取,灵活度 MAX | 表名需带前缀(如 #@__archives) |
| global | 系统配置调用 | 一行代码调取全局变量,如网站名称、版权 | 变量名严格对应系统参数,区分大小写 |
六、新手避坑指南
- 标签闭合:带底层模板的标签(如 arclist、channel)必须用双标签
{/dede:tag},单标签需以/结尾 - 变量作用域:
$_vars、$fields需声明为global,否则模板可能取不到值 - 路径问题:
[field:arcurl]是文章链接,[field:typelink]是栏目链接,别搞混!
总结:全局标签就是模板的 “瑞士军刀”
掌握这几个标签,90% 的模板调用需求都能搞定!从文章列表到栏目导航,从系统配置到跨表查询,灵活组合就能玩出花样~记得收藏这篇攻略,做模板时随时查!遇到具体问题评论区留言,手把手教你调通代码~
