DedeCMS(织梦内容管理系统)是国内非常流行的一款基于 PHP + MySQL 的开源网站管理系统,它的核心特点之一就是模板与程序分离的设计理念,这使得网站的开发、维护和风格更换变得非常简单。

下面我将从几个方面全面介绍 DedeCMS 模板。
什么是 DedeCMS 模板?
DedeCMS 模板可以理解为网站的“皮肤”或“外观”,它是一系列静态的 HTML 文件,其中嵌入了 DedeCMS 特有的模板标签,当用户访问网站时,DedeCMS 程序会读取这些模板文件,并根据模板标签的规则,从数据库中提取对应的内容,最终生成并输出一个完整的 HTML 页面给用户。
核心思想:
- 美工人员 只需要专注于 HTML、CSS 和 JavaScript 的编写,设计出网站的静态页面。
- 程序人员 负责配置好模板标签,实现动态数据的调用。
- 网站管理员 可以在不修改任何程序代码的情况下,通过更换模板来改变整个网站的样式。
模板的核心构成:模板标签
模板标签是 DedeCMS 模板的灵魂,它们是写在 HTML 注释中的一些特殊指令,格式通常为 {dede:标签名 属性='值'}。
调用标签 (最常用)**

这是模板中最核心的部分,用于从数据库中获取文章、栏目、图片等信息。
-
文章列表标签 (
arclist): 用于在首页、列表页等地方调用文章列表。{dede:arclist typeid='1' titlelen='30' row='10'} <li> <a href="[field:arcurl/]">[field:title/]</a> <span>[field:pubdate function="MyDate('Y-m-d',@me)"/]</span> </li> {/dede:arclist}typeid='1': 调用 ID 为 1 的栏目下的文章。titlelen='30': 标题长度限制为 30 个字符。row='10': 调用 10 条记录。[field:arcurl/]: 单条文章链接的变量。[field:title/]: 单条文章标题的变量。[field:pubdate/]: 单条文章发布日期的变量。
-
栏目列表标签 (
channel): 用于调用所有一级栏目。{dede:channel type='top'} <a href="[field:typeurl/]">[field:typename/]</a> {/dede:channel} -
标签 (
field): 用于在文章内容页 (article_article.htm) 中调用当前文章的详细信息。
(图片来源网络,侵删)<h1>[field:title/]</h1> <div class="info">作者:[field:writer/] 发布时间:[field:pubdate function="MyDate('Y-m-d',@me)"/]</div> <div class="content"> [field:body/] </div> -
其他常用标签:
{dede:flink}: 调用友情链接。{dede:myad}: 调用广告。{dede:php}: 执行 PHP 代码,灵活性最高。
系统变量
用于获取系统级别的信息,如网站名称、网站路径等。
{dede:global.cfg_webname/}: 网站名称。{dede:global.cfg_indexurl/}: 网站首页链接。{dede:global.cfg_templeturl/}: 当前模板的目录路径。
逻辑判断标签
用于实现一些简单的条件判断,让模板更智能。
-
if:{dede:field name='typeid' runphp='yes'} if(@me == 1) @me = "<span class='current'>首页</span>"; else @me = "<a href='/'>首页</a>"; {/dede:field} -
in:{dede:field name='typeid' runphp='yes'} $arr = array(1, 2, 3); if(in_array(@me, $arr)) @me = "这个栏目在特定列表里"; else @me = "这个栏目不在特定列表里"; {/dede:field}
模板文件的目录结构
一个标准的 DedeCMS 模板文件存放在 /templets/ 目录下,通常以一个文件夹的形式存在,/templets/default/。
一个完整的模板结构通常包含以下文件:
| 文件名 | 用途 | 说明 |
|---|---|---|
index.htm |
首页模板 | 网站主页的模板文件。 |
list_栏目ID.htm |
列表页模板 | list_1.htm 表示 ID 为 1 的栏目的列表页模板。 |
article_artlist.htm |
文章列表页模板 | 如果某个栏目没有设置专属的 list_x.htm,则默认调用此文件。 |
article_article.htm |
页模板 | 所有文章详情页都使用这个模板。 |
index_栏目ID.htm |
封面页模板 | 用于不需要文章列表,只需要展示一个固定内容的栏目页面(如“关于我们”、“联系我们”)。 |
search.htm |
搜索页模板 | 网站搜索结果页的模板。 |
head.htm |
头部公共模板 | 通常包含网站的 logo、导航栏等,通过 {dede:include file='head.htm'/} 在其他模板中引用。 |
footer.htm |
底部公共模板 | 通常包含版权信息、友情链接等,通过 {dede:include file='footer.htm'/} 引用。 |
style/ |
CSS 样式文件夹 | 存放 style.css 等样式表文件。 |
images/ |
图片文件夹 | 存放模板专用的图片资源。 |
js/ |
JavaScript 文件夹 | 存放 js 脚本文件。 |
如何制作或修改 DedeCMS 模板?
步骤 1:准备静态 HTML 源码
- 使用 Dreamweaver、VS Code、Sublime Text 等工具,设计并切出网站的静态 HTML 页面(包含首页、列表页、内容页等)。
步骤 2:替换静态内容为模板标签
- 将静态 HTML 中的动态内容(如文章标题、链接、列表)替换为对应的 DedeCMS 模板标签。
- 将网站的通用部分(如头部、底部)拆分为独立的
head.htm和footer.htm文件,并在主模板中通过{dede:include}标签引入。
步骤 3:设置模板
- 登录 DedeCMS 后台,进入【系统】-> 【系统基本参数】-> “核心设置”,在“默认主页模板”等选项中选择你刚刚创建的模板文件名(如
index.htm)。 - 对于栏目,可以在【栏目管理】中编辑每个栏目,为其指定独立的列表模板(
list_x.htm)或封面模板(index_x.htm)。
步骤 4:更新网站缓存
- 在后台点击【生成】-> “更新主页HTML” 和 “更新栏目HTML”,让 DedeCMS 根据你的新模板生成静态页面。
总结与优点
-
优点:
- 易于上手: 对于熟悉 HTML 的前端开发者来说,学习 DedeCMS 模板标签非常快。
- 高效开发: 模板与程序分离,大大提高了开发效率,方便团队协作。
- 维护方便: 更换网站风格只需上传一套新模板并稍作配置,无需改动数据库和程序。
- SEO友好: 默认生成静态 HTML 页面,对搜索引擎优化非常有利。
- 资源丰富: 网上有海量的免费和付费 DedeCMS 模板可供选择。
-
缺点:
- 标签限制: 对于非常复杂的动态逻辑,模板标签可能显得力不从心,需要借助
{dede:php}标签,但这会增加维护难度。 - 安全性: 早期版本的 DedeCMS 因模板标签的灵活性存在一些安全隐患,但新版本已大幅改善。
- 性能: 在大量数据和高并发访问下,标签解析和文件缓存机制可能不如一些现代框架(如 Laravel, ThinkPHP)高效。
- 标签限制: 对于非常复杂的动态逻辑,模板标签可能显得力不从心,需要借助
DedeCMS 模板是其强大功能的核心体现,它通过一套简单而强大的标签系统,让非专业程序员也能轻松搭建和管理功能丰富的网站,尽管现在有更多现代化的 CMS 和框架出现,但 DedeCMS 因其简单、高效和庞大的用户基础,尤其是企业官网、资讯类网站领域,仍然拥有广泛的应用。
