DedeCMS 标签快速手册
核心概念
DedeCMS 的模板引擎使用一种类似 XML 的标签语法,核心格式是 {dede:标签名 属性='值'}...{/dede:标签名}。

(图片来源网络,侵删)
- 单标签:没有闭合标签,通常用于输出一个值,如
{dede:field.name/}。 - 双标签:有开始和结束标签,标签之间的内容可以作为循环或条件判断,如
{dede:arclist}{/dede:arclist}。
核心必备标签
这些是构建任何一个 DedeCMS 网站都离不开的基础标签。
站点信息标签
用于在模板中调用网站的全局配置信息。
| 用途 | 示例 | |
|---|---|---|
{dede:global.cfg_webname/} |
网站名称 | <title>{dede:global.cfg_webname/}</title> |
{dede:global.cfg_weburl/} |
网站首页URL | <link rel="canonical" href="{dede:global.cfg_weburl/}" /> |
{dede:global.cfg_description/} |
网站描述 | <meta name="description" content="{dede:global.cfg_description/}" /> |
{dede:global.cfg_keywords/} |
网站关键词 | <meta name="keywords" content="{dede:global.cfg_keywords/}" /> |
字段标签
用于获取当前文档(文章、栏目等)的特定字段值,通常用在文章内容页 (article_article.htm) 或栏目列表页 (list_category.htm)。
| 用途 | 示例 | |
|---|---|---|
{dede:field.title/} |
当前文档标题 | <h1>{dede:field.title/}</h1> |
{dede:field.seotitle/} |
当前文档SEO标题(标题后缀) | <title>{dede:field.title/}_{dede:global.cfg_webname/}</title> |
{dede:field.description function='html2text(@me)'/} |
当前文档摘要,并过滤HTML标签 | <meta name="description" content="{dede:field.description function='html2text(@me)'/}"> |
{dede:field.keywords/} |
当前文档关键词 | <meta name="keywords" content="{dede:field.keywords/}"> |
{dede:field.pubdate function='strftime("%Y-%m-%d %H:%M:%S",@me)'/} |
发布时间,格式化输出 | <span>发布时间:{dede:field.pubdate function='strftime("%Y-%m-%d",@me)'/}</span> |
{dede:field.source/} |
文章来源 | <span>来源:{dede:field.source/}</span> |
{dede:field.writer/} |
文章作者 | <span>作者:{dede:field.writer/}</span> |
{dede:field.body/} |
文章正文内容 | <div class="content">{dede:field.body/}</div> |
{dede:field.click/} |
文章点击量 | <span>点击:{dede:field.click/}</span> |
循环标签
用于在列表页(首页、栏目页、搜索页等)循环输出文章列表。

(图片来源网络,侵删)
| 用途 | 常用属性 | 示例 | |
|---|---|---|---|
{dede:arclist} |
文章列表循环标签 | titlelen: 标题长度row: 输出条数typeid: 栏目ID (0表示所有)orderby: 排序方式 (如 click, pubdate)channelid: 频道ID |
{dede:arclist titlelen='30' row='10' typeid='1' orderby='pubdate'} <li><a href="[field:arcurl/]">[field:title/]</a></li> {/dede:arclist} |
{dede:arclist} 内部字段:
[field:title/]: 文章标题[field:arcurl/]: 文章链接URL[field:pubdate function='strftime("%Y-%m-%d",@me)'/]: 格式化后的发布时间[field:click/]: 点击量[field:description/]: 文章摘要[field:litpic/]: 文章缩略图
高级与常用标签
栏目标签
| 用途 | 常用属性 | 示例 | |
|---|---|---|---|
{dede:channel} |
栏目列表循环标签 | type: top (顶级栏目), son (下级栏目), self (同级栏目)row: 输出条数typeid: 父栏目ID |
{dede:channel type='top'} <li><a href="[field:typelink/]">[field:typename/]</a></li> {/dede:channel} |
{dede:channel} 内部字段:
[field:typename/]: 栏目名称[field:typelink/]: 栏目链接URL
分页标签
用于在列表页生成分页导航。
| 用途 | 示例 | |
|---|---|---|
{dede:pagelist listsize='4'/} |
生成分页条 | <div class="pagelist"> {dede:pagelist listsize='4'/} </div> |
文章页导航标签页生成“上一篇”和“下一篇”链接。
| 用途 | 示例 | |
|---|---|---|
{dede:prenext get='pre'/} |
上一篇链接 | <div class="prenext"> {dede:prenext get='pre'/} {dede:prenext get='next'/} </div> |
{dede:prenext get='next'/} |
下一篇链接 |
搜索表单标签
用于生成站内搜索的表单。

(图片来源网络,侵删)
| 用途 | 示例 | |
|---|---|---|
{dede:global.cfg_searchbox/} |
生成搜索框HTML | <form action="{dede:global.cfg_cmspath/}/search.php" method="get"> <input type="text" name="q" placeholder="请输入关键词"> <button type="submit">搜索</button> </form> |
模板引擎常用函数
函数用于对标签输出的值进行二次处理,语法为 function='函数名(@me)'。
| 函数 | 用途 | 示例 |
|---|---|---|
textln |
截取文本,不包含HTML标签 | {dede:field.description function='textln(@me,100)'/} (截取100个字符) |
cn_substr |
截取包含HTML的字符串 | [field:description function='cn_substr(@me,100)'/] |
strftime |
格式化时间戳 | {dede:field.pubdate function='strftime("%Y年%m月%d日",@me)'/} |
Html2Text |
将HTML文本转为纯文本 | {dede:field.body function='Html2Text(@me)'/} |
str_replace |
字符串替换 | [field:typelink function='str_replace("首页","Home",@me)'/] |
实用技巧与示例
示例1:首页文章列表
<!-- 最新文章 -->
<h2>最新文章</h2>
<ul class="news-list">
{dede:arclist row='8' titlelen='30' orderby='pubdate'}
<li>
<span class="date">[field:pubdate function='strftime("%m-%d",@me)'/]</span>
<a href="[field:arcurl/]" title="[field:title/]">[field:title/]</a>
</li>
{/dede:arclist}
</ul>
<!-- 热门文章 -->
<h2>热门文章</h2>
<ul class="hot-list">
{dede:arclist row='6' titlelen='25' orderby='click'}
<li><a href="[field:arcurl/]" title="[field:title/]">[field:title/]</a></li>
{/dede:arclist}
</ul>
示例2:栏目列表页 (list_category.htm)
<h1>{dede:field.typename/}</h1>
<p>{dede:field.description/}</p>
<ul class="article-list">
{dede:list pagesize='10'}
<li>
<h3><a href="[field:arcurl/]">[field:title/]</a></h3>
<p class="info">
<span>发布时间:[field:pubdate function='strftime("%Y-%m-%d",@me)'/]</span>
<span>点击:[field.click/]</span>
</p>
<p class="desc">[field:description function='cn_substr(@me,200)'/]...</p>
</li>
{/dede:list}
</ul>
<!-- 分页 -->
<div class="page">
{dede:pagelist listsize='4'/}
</div>
注意:在栏目列表页,文章循环标签使用的是 {dede:list},而不是 {dede:arclist}。
示例3:调用指定栏目的子栏目
<h2>产品分类</h2>
<ul>
{dede:channel type='son' typeid='2'} <!-- 假设2是“产品”栏目的ID -->
<li><a href="[field:typelink/]">[field:typename/]</a></li>
{/dede:channel}
</ul>
自定义标签
如果内置标签无法满足需求,你可以自定义PHP函数标签。
-
在
/include/extend.func.php中添加PHP函数:// 示例:获取指定栏目的文章数量 function GetArctypeNum($typeid) { global $dsql; $query = "SELECT COUNT(*) as num FROM `dede_archives` WHERE typeid = $typeid"; $row = $dsql->GetOne($query); return $row['num']; } -
在模板中调用:
本栏目共有 {dede:getarctypenum typeid='1'/} 篇文章(注意:此功能需要修改核心文件以支持,新版DedeCMS已简化,推荐使用更灵活的SQL查询标签)
SQL查询标签
这是最强大的自定义方式,可以直接执行SQL语句。
| 用途 | 示例 | |
|---|---|---|
{dede:sql} |
执行SQL查询并循环输出 | {dede:sql sql='SELECT * FROM dede_archives WHERE typeid = 1 ORDER BY pubdate DESC LIMIT 10'} <li>[title]</li> {/dede:sql} |
- 基础:先掌握
global、field、arclist、channel四大金刚。 - 进阶:学习
list、pagelist、prenext和各种函数。 - 灵活:善用
sql标签解决复杂需求。 - 参考:官方自带的模板是最好的学习范例,多看多模仿。
这份手册涵盖了80%以上的日常开发场景,希望对你有所帮助!
