DedeCMS的模板系统非常灵活,它通过一套模板引擎来解析HTML文件中的特定标签,并将其替换为从数据库中动态获取的内容,最终生成用户看到的网页。

(图片来源网络,侵删)
这个过程可以通俗地理解为:设计师负责画“静态的图纸”(模板文件),程序员负责把“活的零件”(动态数据)填到图纸的指定位置,最后组装成完整的“房子”(网页)。
核心概念:你必须先懂的几个东西
在开始操作之前,必须理解DedeCMS模板的几个核心组成部分:
-
网站目录结构
/dede/:后台管理目录。/templets/:模板目录,存放所有网站模板文件的地方。/templets/default/:默认模板文件夹,当你新建一个模板时,通常会在这里操作。/html/:静态文件缓存目录,DedeCMS生成静态HTML后,文件会存放在这里。/include/:核心函数库和类文件存放目录。/uploads/:上传附件(图片、视频等)的目录。
-
模板引擎标签 这是DedeCMS模板的灵魂,它们用大括号 包裹,用来调用数据。
(图片来源网络,侵删)- 全局标签:在所有页面都能使用。
{dede:global.cfg_webname/}:调用网站名称。{dede:global.cfg_weburl/}:调用网站网址。{dede:global.cfg_powerby/}:调用版权信息。
- 栏目标签:用于调用栏目信息,通常在首页、列表页使用。
{dede:channel}:用于调用一级栏目。{dede:sonchannel}:用于调用当前栏目的子栏目。
- 标签:用于调用文章内容,这是最常用的标签,用在文章列表页和文章内容页。
{dede:list}:用于文章列表。{dede:arclist}:用于首页或其它页面的文章调用(比list更灵活)。{dede:field}:用于文章内容页,调用文章的单个字段,如标题、发布时间、内容等。{dede:field.title/}。{dede:field.pubdate function='strftime("%Y-%m-%d",@me)'/}:发布时间(可以格式化日期)。{dede:field.body/}:文章正文内容。
- 系统变量:用于调用特定的系统变量。
{dede:prenext get='pre'/}:上一篇。{dede:prenext get='next'/}:下一篇。{dede:pagelist listsize='5'/}:分页条。
- 全局标签:在所有页面都能使用。
-
模板文件 DedeCMS将一个复杂的网站拆分成多个模板文件,方便管理和修改。
index.html:首页模板。list_article.html:文章列表页模板,所有文章列表页都使用这个模板。article_article.html:页模板,所有文章详情页都使用这个模板。index.htm:首页默认文件,后台设置中,首页默认文件指向index.html,生成静态后,会生成index.htm。category_栏目ID.htm:列表页静态文件名,生成静态后,栏目ID为1的列表页会生成category_1.htm。archives_文章ID.htm:文章页静态文件名,生成静态后,文章ID为10的文章页会生成archives_10.htm。
使用Dede模板的完整流程
假设我们要修改首页,这个流程是所有模板修改的基础。
第1步:备份!备份!备份!
在修改任何文件之前,务必备份你的 /templets/default/ 目录,这是防止改错后无法恢复的唯一方法。
第2步:进入后台,找到模板管理
- 登录你的DedeCMS后台
/dede/。 - 在左侧菜单栏中找到 “模板” -> “模板管理”。
第3步:选择并编辑模板
- 在模板管理页面,你会看到网站所有模板的列表,包括首页、列表页、内容页等。
- 找到 “默认首页模板”,点击右侧的 “修改” 按钮。
- 你会进入一个代码编辑器页面,里面就是
index.html的全部内容。
第4步:理解并修改模板代码
一个典型的首页模板结构如下:

(图片来源网络,侵删)
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">{dede:global.cfg_webname/}</title>
<!-- 其他 head 内容,如CSS、JS链接 -->
</head>
<body>
<!-- 1. 顶部导航栏 -->
<div class="header">
{dede:include filename="head.htm"/} <!-- 引用公共头部文件 -->
</div>
<!-- 2. 主要内容区 -->
<div class="main">
<!-- 左侧:焦点新闻/推荐文章 -->
<div class="left-content">
{dede:arclist typeid='1' row='5' titlelen='30'}
<li>
<a href="[field:arcurl/]">[field:title/]</a>
<span>[field:pubdate function='strftime("%Y-%m-%d",@me)'/]</span>
</li>
{/dede:arclist}
</div>
<!-- 右侧:热门文章/最新评论等 -->
<div class="right-sidebar">
{dede:include filename="side.htm"/} <!-- 引用公共侧边栏文件 -->
</div>
</div>
<!-- 3. 底部信息 -->
<div class="footer">
{dede:include filename="footer.htm"/} <!-- 引用公共底部文件 -->
</div>
</body>
</html>
代码解读:
{dede:include filename="head.htm"/}:这是一个包含标签,它会把head.htm文件的内容原封不动地插入到这里,这样做是为了把公共部分(如头部、底部、侧边栏)抽离出来,避免重复修改。{dede:arclist typeid='1' row='5' titlelen='30'}:这是文章列表标签。typeid='1':只调用栏目ID为1下的文章。row='5':调用5篇文章。titlelen='30'长度最多30个字符。
[field:arcurl/]:这是{dede:arclist}标签内部的字段标签,表示这篇文章的链接地址。[field:title/]:表示这篇文章的标题。[field:pubdate ... /]:表示发布日期,并使用function对日期进行了格式化。
修改操作:
你可以直接在这个编辑器里修改HTML、CSS代码,或者修改Dede标签的参数,想把调用5篇文章改成10篇,就把 row='5' 改成 row='10'。
第5步:更新缓存
模板修改保存后,DedeCMS并不会立即生效,因为数据可能被缓存了。
- 在后台模板管理页面,点击右上角的 “更新缓存” 按钮。
- 等待缓存更新完成。
第第6步:生成页面
这是最关键的一步,它将你的模板和数据结合,生成最终的网页。
- 在后台左侧菜单栏找到 “生成” -> “HTML更新”。
- 你会看到生成选项页面。
- 首页更新:只生成首页。
- 栏目更新:生成所有列表页。
- 文档更新:生成所有文章内容页。
- 全站更新:生成所有页面(耗时较长,适合网站内容全部更新后使用)。
- 根据你的需求选择,然后点击 “开始生成”。
- 等待生成完成,生成过程中,页面会显示进度。
第7步:预览效果
生成完成后,打开你的网站首页,就能看到修改后的效果了。
常用模板修改场景举例
场景1:修改网站Logo
- 准备工作:准备好你的新Logo图片(
new_logo.png),通过FTP上传到/templets/default/images/目录下。 - 找到模板:在后台模板管理中,修改
head.htm文件(因为Logo通常在头部)。 - 修改代码:找到
<img src="/templets/default/images/old_logo.png" />这行代码,将old_logo.png替换成new_logo.png。 - 更新缓存并生成首页。
场景2:在首页添加一个“最新公告”栏目
- 后台添加栏目:在后台“栏目管理”中,添加一个新栏目,比如叫“最新公告”,并设置好其栏目属性。
- 修改首页模板:在后台修改
index.html。 - 添加调用代码:在你想显示公告的位置,添加以下标签:
<div class="notice"> <h3>最新公告</h3> <ul> {dede:arclist typeid='公告栏的ID' row='10' titlelen='40'} <li><a href="[field:arcurl/]">[field:title/]</a></li> {/dede:arclist} </ul> </div>注意:一定要把
typeid='公告栏的ID'中的ID替换成你刚刚创建的“最新公告”栏目的实际ID。 - 更新缓存并生成首页。
场景3:修改文章列表页的样式
- 找到模板:在后台模板管理中,修改
list_article.html。 - 修改HTML和CSS:找到
{dede:list}标签部分,修改它外层的HTML结构,或者调整其内部的CSS样式,默认可能是<li>标签,你可以改成<div>标签,并为其添加新的class,以便用CSS进行美化。 - 更新缓存并生成对应栏目页。
常见问题与技巧
-
Q: 为什么我修改了模板,生成后页面没变化?
- A: 忘记 “更新缓存” 或 “生成页面” 了,这是最常见的原因,请严格按照流程操作。
-
Q: 如何让网站支持响应式布局?
- A: 在修改模板时,引入一个响应式框架的CSS文件(如Bootstrap),或者在写自定义CSS时,使用媒体查询(
@media),这本质上还是修改HTML结构和CSS样式,与Dede标签本身关系不大,但模板是承载它们的容器。
- A: 在修改模板时,引入一个响应式框架的CSS文件(如Bootstrap),或者在写自定义CSS时,使用媒体查询(
-
Q: 如何制作自定义的模板?
- A: 在
/templets/目录下新建一个文件夹,my_template,然后把你修改好的所有模板文件(index.html,list_article.html,article_article.html等)复制进去。 - 在后台 “模板” -> “默认模板设置” 中,将各个页面的模板文件路径修改为
/templets/my_template/对应的文件。
- A: 在
-
Q: 如何学习更多标签和技巧?
- A:
- 官方文档:查阅DedeCMS官方提供的模板标签说明文档。
- 分析默认模板:仔细研究
/templets/default/下的所有模板文件,这是最好的学习材料。 - 搜索社区:在百度、CSDN、博客园等平台搜索“DedeCMS 模板教程”,有大量实例可以参考。
- A:
希望这份详细的指南能帮助你顺利上手DedeCMS模板!备份和耐心是成功的关键。
