核心思想:DedeCMS 模板是什么?
要理解 DedeCMS 的工作原理,它是一个“内容管理系统”,你的网站内容(文章、产品、图片等)存储在数据库里,而模板则是网站的“骨架”和“皮肤”,DedeCMS 的核心任务就是:从数据库中取出内容,然后按照模板的规则,将内容填充到网页中,最终生成用户看到的 HTML 页面。

修改模板就是修改这个“骨架”和“皮肤”,决定内容以何种样式、何种布局、何种风格展示出来。
模板文件结构详解
DedeCMS 的模板文件都存放在 /templets/ 目录下,这个目录通常包含以下几个部分:
/templets/default/:这是默认模板目录,当你安装好 DedeCMS 后,网站就是使用这个目录下的模板。强烈建议你不要直接修改默认模板! 因为一旦官方更新,你的修改就会丢失。/templets/你的网站目录/:这是你自己的模板目录,你应该在这里创建一个新文件夹(命名为mytheme),然后把default目录下的文件复制一份到你的新文件夹里,之后所有的修改都在你自己的这个目录下进行。/templets/system/:这是系统模板目录,里面存放的是一些通用的、小型的模板片段,上一篇/下一篇”的链接、文章列表的分页条、评论表单等,当你需要修改这些通用组件时,就需要来这里。
一个典型的模板文件结构:
/templets/
└── mytheme/ <-- 你的自定义模板目录
├── index.html <-- 首页模板
├── list_article.html <-- 文章列表页模板
├── article_article.html <-- 文章内容页模板
├── search.html <-- 搜索结果页模板
├── head.html <-- 公共头部文件 (被其他页面引用)
├── foot.html <-- 公共底部文件 (被其他页面引用)
└── style/ <-- 样式和脚本目录
├── style.css <-- 主样式表
├── jquery.js <-- JavaScript 库
└── ...
模板修改的核心步骤
第一步:准备工作(至关重要!)
-
备份!备份!备份!
(图片来源网络,侵删)- 在修改任何文件之前,务必备份你的整个网站,特别是
/templets/目录和/data/目录(数据库配置文件)。 - 使用 FTP 或主机控制面板的文件管理器下载到本地。
- 在修改任何文件之前,务必备份你的整个网站,特别是
-
在本地环境测试
- 如果你的网站已经在线,强烈建议你先在本地电脑(如使用 XAMPP, WAMP, phpStudy 等环境)搭建一个一模一样的测试站点。
- 在本地进行所有修改和调试,确认无误后再上传到服务器,这样可以避免因修改错误导致网站瘫痪。
-
开启模板调试
- 登录你的 DedeCMS 后台。
- 进入 【系统】 -> 【系统基本参数】 -> 【性能选项】。
- 找到 “是否开启模板调试”,选择 “是”。
- 保存后,刷新你的网站页面,页面上会显示当前正在使用的模板文件名,
DedeCms: index.html,这能帮助你快速定位到需要修改的文件。
第二步:修改模板文件
现在你可以开始修改你复制到 /templets/mytheme/ 目录下的文件了,模板文件是 .html 后缀,但它内部包含了 DedeCMS 的专属标签。
常用编辑工具:

- VS Code (强烈推荐,免费、强大、插件丰富)
- Sublime Text
- Dreamweaver
- 甚至记事本也可以,但不推荐,容易出现编码问题。
第三步:理解和使用 DedeCMS 模板标签
这是模板修改的灵魂,DedeCMS 通过标签来调用数据库内容。
常用标签示例:
-
全局标签 (通常在
head.html和foot.html中){dede:global.cfg_webname/}:网站名称{dede:global.cfg_weburl/}:网站网址{dede:global.cfg_powerby/}:版权信息
-
循环列表标签 (用于首页、列表页)
- 最核心的标签,用于输出文章列表、产品列表等。
- 语法结构:
{dede:arclist typeid='' row='' titlelen=''} <li> <a href="[field:arcurl/]">[field:title/]</a> <span>[field:pubdate function="MyDate('Y-m-d',@me)"/]</span> </li> {/dede:arclist} - 常用属性:
typeid='':指定栏目 ID,只显示该栏目下的文章,不填则显示所有。row='10':获取 10 条记录。titlelen='30'长度,截取 30 个字符。
- 底层字段 (在
{dede:arclist}和{/dede:arclist}之间使用的变量):[field:title/][field:arcurl/]:文章链接[field:pubdate/]:发布日期 (时间戳格式)[field:description/]:文章摘要[field:litpic/]:文章缩略图[field:click/]:点击量
-
内容页标签 (用于
article_article.html等)- 用于输出当前文章的详细信息。
- 常用标签:
{dede:field.title/}{dede:field.pubdate function="MyDate('Y-m-d H:i:s',@me)"/}:格式化后的发布日期{dede:field.body/}:文章正文内容{dede:field.keywords/}:文章关键词{dede:field.description/}:文章描述{dede:field.click/}:点击量
-
栏目导航标签
- 用于生成主导航菜单。
-
{dede:channel type='top' row='8'} <li><a href="[field:typeurl/]">[field:typename/]</a></li> {/dede:channel} type='top'表示调用顶级栏目。
第四步:修改 CSS 和 JavaScript
模板的样式和交互效果通常存放在 /templets/mytheme/style/ 目录下。
- CSS 文件 (
.css):控制网站的视觉表现,如颜色、字体、布局、间距等,修改style.css即可改变网站外观。 - JavaScript 文件 (
.js):控制网站的交互行为,如轮播图、下拉菜单、表单验证等。
第五步:更新和生成
修改完模板文件后,DedeCMS 不会立刻更新你的网站,你需要手动生成页面。
-
生成首页
- 后台 -> 【生成】 -> 【首页生成】** -> 点击“生成首页”。
-
生成栏目页
- 后台 -> 【生成】 -> 【栏目页更新】** -> 选择要更新的栏目,点击“开始生成”。
-
页
- 后台 -> 【生成】 -> 页更新】** -> 可以选择按时间、ID 等方式批量生成。
注意: 对于频繁更新的网站,建议在后台 【系统】 -> 【核心设置】** 中开启“仅动态浏览”或使用“发布文章后自动生成HTML”等选项,以提高效率。
常见修改场景示例
场景1:修改网站标题和 Logo
- :找到
head.html文件,将{dede:global.cfg_webname/}修改为你想要的网站名称。 - 修改 Logo:
- 准备好你的新 Logo 图片(
logo.png),通过 FTP 上传到/templets/mytheme/images/目录下。 - 打开
head.html,找到<img src="/templets/default/images/logo.png" ...>这行代码。 - 将
src属性中的路径修改为你的新路径,src="/templets/mytheme/images/logo.png"。
- 准备好你的新 Logo 图片(
场景2:在首页添加一个“最新公告”
- 在后台创建一个名为“最新公告”的自由页面(栏目 -> 添加高级栏目 -> 选择“自由页面”)。
- 在该自由页面中编写你的公告内容。
- 打开你的首页模板
index.html,在你想显示公告的位置(head.html的导航栏下方),添加以下代码:{dede:sql sql="Select content from dede_arctype where typename='最新公告'"} [field:content function='htmlspecialchars(@me)'/] {/dede:sql}这段代码会直接从“最新公告”这个栏目的描述中取出内容并显示,更推荐的方法是使用自定义模型,但这个方法最简单。
场景3:修改文章列表的显示条数
- 打开你的列表页模板,
list_article.html。 - 找到文章列表的循环标签
{dede:arclist ...}。 - 在标签内添加
row='20'属性,{dede:arclist typeid='' row='20' titlelen='30'} ... {/dede:arclist} - 保存文件,然后到后台 【生成】 -> 【栏目页更新】,更新这个栏目对应的列表页。
调试技巧与常见问题
-
样式不生效?
- 检查路径:确保 CSS 文件的引用路径是正确的。
<link rel="stylesheet" href="/templets/mytheme/style/style.css">。 - 清除缓存:浏览器按
Ctrl + F5强制刷新缓存。 - 检查代码:CSS 语法是否有错误(如缺少分号、大括号未闭合)。
- 检查路径:确保 CSS 文件的引用路径是正确的。
-
标签调用不出内容?
- 检查标签:标签名称、属性名是否拼写错误。
- 检查属性:
typeid是否正确?该栏目下是否有内容? - 开启调试:如前所述,开启模板调试功能,看看当前页面加载的是哪个模板文件。
-
修改后网站报错?
- 检查语法:PHP 和 HTML 语法是否正确,比如标签是否成对出现,引号是否匹配。
- 恢复备份:如果找不到错误原因,立即用你之前备份的文件恢复。
修改 DedeCMS 模板是一个需要耐心和细心的工作,遵循以下流程可以让你事半功倍:
- 备份 -> 本地测试 -> 开启调试
- 定位文件 -> 理解标签 -> 修改代码
- 更新路径 -> 生成页面 -> 清除缓存
多看、多练、多思考,遇到问题时,善用搜索引擎(搜索“DedeCMS + 你的问题”),DedeCMS 拥有非常庞大的用户社区,你遇到的问题很可能已经有其他人解决过了,祝你修改顺利!
