织梦CMS 模板使用手册
目录
- 前言:织梦模板是什么?
- 第一章:核心概念与文件结构
- 1 模板引擎简介
- 2 模板文件命名规则
- 3 模板目录结构
- 第二章:模板基础语法
- 1 变量输出 (
{dede:field}与{dede:global}) - 2 常用PHP函数调用 (
{dede:func}) - 3 条件判断 (
if...else) - 4 循环输出 (
arclist,list,channel等) - 5 注释
- 1 变量输出 (
- 第三章:核心标签详解
- 1 内容列表标签:
{dede:arclist}(文章列表) - 2 文章内容页标签:
{dede:field}(文章页) - 3 栏目标签:
{dede:channel}(栏目列表) - 4 分页标签:
{dede:pagelist} - 5 其他常用标签
- 1 内容列表标签:
- 第四章:模板制作实战流程
- 1 准备工作:HTML/CSS/PSD
- 2 模板文件命名与创建
- 3 切割HTML与模板化改造
- 4 模板标签的填充与调试
- 5 CSS/JS路径修正
- 第五章:高级技巧与常见问题
- 1 模板嵌套 (
include) - 2 自定义函数
- 3 缓存机制
- 4 常见问题与解决方案
- 1 模板嵌套 (
- 第六章:推荐资源与工具
前言:织梦模板是什么?
织梦CMS的模板系统本质上是一个模板引擎,它的核心思想是“数据与表现分离”。

- 数据:存储在织梦CMS数据库中的内容,如文章、栏目、产品等。
- 表现:即我们看到的网站页面,由HTML、CSS、JavaScript等构成。
织梦模板通过一套特殊的标签语言,将数据库中的数据动态地填充到HTML页面中,当你访问网站时,织梦系统会读取你设计的HTML模板,解析其中的标签,从数据库获取对应的数据,最终生成一个完整的、可供用户访问的HTML页面。
你只需要设计好网站的“骨架”(HTML模板),织梦会自动把“血肉”(内容数据)填进去。
第一章:核心概念与文件结构
1 模板引擎简介
织梦使用自己的模板引擎,它解析 .htm 后缀的模板文件,将 {dede:...} 格式的标签替换为实际内容,这个引擎是织梦CMS的核心组成部分。
2 模板文件命名规则
模板文件的命名非常重要,它决定了该模板在网站的哪个位置生效。

- 首页模板:
index.htm - 栏目列表页模板:
- 默认列表页:
list_栏目ID.htm(list_1.htm) - 自定义列表页:在后台栏目可以指定模板文件名,如
news_list.htm
- 默认列表页:
- 页模板:
- 页:
article_article.htm - 页:在后台栏目或单篇文档中可以指定,如
news_detail.htm
- 页:
- 其他页面模板:
- 搜索页:
search.htm - 用户评论页:
feedback.htm - 标签列表页:
tag_标签名.htm
- 搜索页:
3 模板目录结构
默认情况下,模板文件存放在 /templets/ 目录下,一个典型的模板结构如下:
/templets/
├── default/ # 默认模板文件夹,你可以创建自己的文件夹,如 "mywebsite"
│ ├── index.htm # 首页模板
│ ├── style/ # CSS样式文件夹
│ │ └── base.css
│ ├── images/ # 图片文件夹
│ │ └── logo.png
│ ├── js/ # JavaScript脚本文件夹
│ │ └── jquery.js
│ ├── list_1.htm # ID为1的栏目列表页
│ ├── list_2.htm # ID为2的栏目列表页
│ ├── article_article.htm # 默认文章内容页
│ └── ... # 其他模板文件
└── ... # 其他模板文件夹
操作提示:在织梦后台,你可以通过 “系统” -> “系统基本参数” -> “站点设置” 来修改默认的模板目录路径。
第二章:模板基础语法
1 变量输出
-
字段标签:用于输出文章、栏目等具体信息。
{dede:field.title/}:输出文章或栏目标题。{dede:field.pubdate function='strftime("%Y-%m-%d",@me)'/}:输出发布日期,并使用PHP的strftime函数格式化。{dede:field.body/}:输出文章正文内容。{dede:field.keywords/}:输出文章关键词。
-
全局标签:用于输出网站的全局配置信息。
(图片来源网络,侵删){dede:global.cfg_webname/}:输出网站名称。{dede:global.cfg_powerby/}:输出版权信息。
2 常用PHP函数调用
使用function属性可以对字段值进行PHP函数处理,非常灵活。
{dede:field.pubdate function='strftime("%Y年%m月%d日 %H:%M",@me)'/}
{dede:field.description function='cn_substr(@me, 100)'/} <!-- 截取前100个字符 -->
{dede:field.name function='mb_convert_case(@me, MB_CASE_UPPER, "UTF-8")'/} <!-- 转换为大写 -->
3 条件判断 (if...else)
根据条件输出不同的内容,常用于判断是否有内容、是否为首页等。
{dede:field name='typeid' runphp='yes'}
if(@me == 0) {
@me = "这是首页,显示特殊内容";
} else {
@me = "这是栏目页,显示普通内容";
}
{/dede:field}
更简洁的写法:
{dede:field name='typeid' runphp='yes'}
@me = (@me == 0 ? "首页" : "栏目页");
{/dede:field}
4 循环输出 (arclist, list, channel等)
这是织梦模板最核心、最常用的部分,用于遍历并显示一组数据。
{dede:arclist}:用于在首页、栏目页等调用文章列表。{dede:list}:用于在栏目列表页循环显示本栏目的文章。{dede:channel}:用于调用栏目列表。
{dede:arclist} 示例:
{dede:arclist flag='c' typeid='2' row='8' titlelen='30'}
<li>
<a href="[field:arcurl/]">[field:title/]</a>
<span>[field:pubdate function='strftime("%m-%d",@me)'/]</span>
</li>
{/dede:arclist}
常用属性说明:
typeid: 指定栏目ID,多个ID用逗号隔开。row: 调用文章数量,len`: 标题长度。infolen: 简介(长度。flag: 特殊属性,如'c'(推荐),'h'(头条),'p'(图片) 等,可组合使用。orderby: 排序方式,如'click'(点击量),'pubdate'(发布日期)。
5 注释
在模板中添加注释,方便自己或他人理解代码,注释内容不会在最终页面上显示。
{dede:note}
这里是一段模板注释,用于说明此处代码的作用。
{/dede:note}
第三章:核心标签详解
1 内容列表标签:{dede:arclist}
这是最强大的标签,没有之一,除了上面提到的属性,还有更多:
channelid: 指定频道模型ID,默认为1 (文章)。limit: 起始位置,显示数量,如limit='0,10'(从第0条开始,显示10条)。att:att='1'只包含有缩略图的文章。keyword: 关键词包含,如keyword='织梦,模板'。sub:sub='1'包含子栏目的文章。
常用字段:
[field:title/]: 文章标题[field:arcurl/]: 文章链接[field:pubdate function='strftime("%Y-%m-%d",@me)'/]: 发布日期[field:description function='cn_substr(@me, 120)'/]: 文章摘要[field:litpic/]: 缩略图[field:click/]: 点击量
2 文章内容页标签:{dede:field}
页(article_article.htm)使用,用于获取当前文章的详细信息。
{dede:field.title/}: 文章标题{dede:field.seotitle/}: SEO标题{dede:field.writer/}: 作者{dede:field.source/}: 来源{dede:field.pubdate function='strftime("Y-m-d H:i:s",@me)'/}: 发布时间{dede:field.body/}: 文章正文{dede:field.pagebreak/}: 文章分页符{dede:field.content/}: 包含正文的完整内容
3 栏目标签:{dede:channel}
用于调用栏目列表。
{dede:channel type='top' row='8'}
<li><a href="[field:typeurl/]">[field:typename/]</a></li>
{/dede:channel}
常用属性:
type:'top'(顶级栏目),'son'(子栏目),self(本栏目)。row: 调用栏目数量。typeid: 指定从哪个栏目开始调用。
4 分页标签:{dede:pagelist}
在列表页使用,用于生成分页导航。
<div class="dede_pages">
<ul>
<li>{dede:pagelist listsize='4' listitem='info,index,end,pre,next,pageno'/}</li>
</ul>
</div>
listitem 属性:控制显示哪些分页元素。
info: 显示页码信息 (如共10页/当前第1页)index: 显示首页pre: 显示上一页next: 显示下一页last: 显示尾页pageno: 显示页码
5 其他常用标签
- 友情链接:
{dede:flink/}type='text': 文本链接type='image': 图片链接
- 网站版权:
{dede:global.cfg_powerby/} - 当前栏目名:
{dede:field name='typename'/}
第四章:模板制作实战流程
-
准备HTML源码:
- 使用Photoshop或Figma设计网站UI。
- 使用HTML/CSS/JS将设计稿切静态页面,确保页面在浏览器中显示正常。
-
创建模板文件夹:
- 在
/templets/目录下新建一个以你的网站名命名的文件夹,如mytemplet。 - 将切好的HTML文件、CSS、JS、图片等资源文件复制到该文件夹中。
- 在
-
模板化改造:
- 修改文件名:将首页
index.html重命名为index.htm,根据需要创建list_x.htm,article_article.htm等。 - 替换网站标题:找到HTML中的
<title>标签,将静态标题替换为{dede:global.cfg_webname/}- {dede:field.seotitle/}。 - 替换Logo:将
<img src="images/logo.png">中的路径改为动态路径,如<img src="{dede:global.cfg_templets_skin/}/images/logo.png">。cfg_templets_skin会自动指向当前模板目录。 - 制作导航栏:将静态的导航链接
<a href="#">关于我们</a>替换为{dede:channel type='top' row='8'}<a href="[field:typeurl/]">[field:typename/]</a>{/dede:channel}。 - 制作文章列表:找到文章列表的HTML结构(如
<ul><li>...</li></ul>),用{dede:arclist...}标签及其字段替换静态内容。 - 制作页脚:将版权信息替换为
{dede:global.cfg_powerby/}。
- 修改文件名:将首页
-
后台设置:
- 登录织梦后台,进入 “系统” -> “系统基本参数” -> “站点设置”。
- 将“默认模板目录”设置为你的新模板文件夹
/templets/mytemplet/。 - 进入各个栏目的“高级选项”,选择对应的列表页和内容页模板。
-
生成与测试:
- 在后台首页点击 “生成” -> “一键更新网站”,选择“更新所有”。
- 访问你的网站,检查各个页面是否显示正常,链接是否有效。
第五章:高级技巧与常见问题
1 模板嵌套 (include)
使用 {dede:include} 标签可以引入其他模板文件,实现代码复用,如头部、底部。
{dede:include filename='head.htm'/}
<!-- 页面主要内容 -->
{dede:include filename='footer.htm'/}
2 自定义函数
当内置函数无法满足需求时,可以自定义PHP函数。
- 在
/include/helpers/目录下创建一个PHP文件,如extend.helper.php。 - 在文件中定义你的函数,
if (!function_exists('MyTruncate')) { function MyTruncate($string, $length) { // 你的自定义逻辑 return mb_substr($string, 0, $length, 'utf-8') . '...'; } } - 在模板中调用:
{dede:field.description function='MyTruncate(@me, 50)'/}
3 缓存机制
织梦为了提高速度,使用了模板缓存,当你修改了模板文件后,如果页面没有更新,可能是因为缓存问题。
- 解决方案:在后台“生成”页面,点击“更新HTML”或“一键更新网站”,系统会重新编译模板。
4 常见问题与解决方案
-
问题1:标签不生效,显示为
{dede:field.title/}原文。- 原因:模板文件后缀不是
.htm;后台模板路径设置错误;模板文件有语法错误导致解析失败。 - 解决:检查文件名、后台设置,并用Dreamweaver等工具检查标签是否闭合正确。
- 原因:模板文件后缀不是
-
问题2:图片、CSS路径错误,显示404。
- 原因:使用了绝对路径或相对路径
/images/。 - 解决:使用织梦的全局变量
{dede:global.cfg_templets_skin/}来构建路径,如<img src="{dede:global.cfg_templets_skin/}/images/logo.png">。
- 原因:使用了绝对路径或相对路径
-
问题3:列表页分页不显示或样式错乱。
- 原因:后台未生成列表页;CSS样式与分页标签的HTML结构不匹配。
- 解决:在后台生成对应栏目列表;检查并调整CSS样式。
第六章:推荐资源与工具
- 官方资源:
- 织梦CMS官网:
www.dedecms.com - 织梦官方论坛:
bbs.dedecms.com(寻找官方模板和解决方案)
- 织梦CMS官网:
- 模板市场:
织梦梦网、织梦吧等网站提供大量付费和免费的模板。
- 开发工具:
- 代码编辑器:VS Code, Sublime Text, Dreamweaver (推荐VS Code,插件丰富)。
- FTP工具:FileZilla, WinSCP (用于上传模板文件)。
- 浏览器开发者工具:F12 (用于调试CSS、JS和查看网络请求)。
希望这份手册能帮助你快速上手织梦CMS的模板制作!实践是最好的老师,多动手尝试,遇到问题多查阅官方文档和社区,你会越来越熟练。
