DedeCMS 菜鸟模板制作全攻略
在开始之前,请先理解一个核心思想:DedeCMS 的模板不是凭空画出来的,而是在现有 HTML/CSS 网页的基础上,通过插入 DedeCMS 的“模板标签”来实现的。

(图片来源网络,侵删)
你可以把 DedeCMS 模板想象成“填空题”:
- HTML/CSS 是题目的背景和框架(我的名字是 ____”)。
- DedeCMS 标签 是需要填写的答案(
{dede:field name='typename'/})。 - DedeCMS 系统 是批改作业的老师,它会自动把答案填进去,生成最终的网页。
第一部分:准备工作
- 本地环境:在你的电脑上搭建一个 DedeCMS 运行环境,最简单的方式是使用集成环境包,如:
- phpStudy (推荐,支持 Windows)
- 宝塔面板 (推荐,支持 Linux/Windows,图形化操作更简单)
- XAMPP (经典选择)
- DedeCMS 程序:从 DedeCMS 官网下载最新稳定版程序,并解压到你本地环境的网站根目录(如
phpStudy/WWW/)。 - 一个静态网页模板:这是制作 DedeCMS 模板的基础,你可以:
- 自己用 HTML/CSS 写一个简单的静态网站。
- 从网上下载一个免费的响应式网站模板(推荐,有很多漂亮的模板可选),下载后解压,你会看到
index.html、css/、images/、js/等文件夹。
第二部分:核心概念 - 模板标签
在开始修改之前,你必须认识 DedeCMS 最常用的几个标签,它们就像是魔法咒语,告诉 DedeCMS 这里该显示什么内容。
| 标签名称 | 标签代码 | 作用说明 | 示例 |
|---|---|---|---|
| 字段调用 | {dede:field name='字段名'/} |
调用当前栏目的某个字段信息。 | {dede:field name='typename'/} 调用栏目名称 |
{dede:field name='description'/} 调用栏目描述 |
|||
{dede:list pagesize='10'} |
循环调用文章列表,pagesize='10'表示每页显示10条。 |
必须用 </dede:list>
| |
[field:title/] |
在 {dede:list} 循环内部,调用单篇文章的标题。 |
||
| 文章链接 | [field:arcurl/] |
在 {dede:list} 循环内部,调用单篇文章的链接地址。 |
|
| 文章摘要 | [field:description function='cn_substr(@me,100)'/] |
调用文章摘要,并用函数截取前100个字符。 | |
| 文章缩略图 | [field:litpic/] |
调用文章的缩略图地址。 | |
| 文章时间 | [field:pubdate function='strftime("%Y-%m-%d",@me)'/] |
调用文章发布时间,并格式化为“年-月-日”。 | |
| 分页 | {dede:pagelist listsize='4' listitem='index pre pageno next end '/} |
在列表页底部生成分页导航条。 | |
| 首页调用 | {dede:arclist row='4' titlelen='20'} |
在首页或其他页面调用指定数量的文章列表。 | row='4'调用4条,titlelen='20'标题长度20个字符。 |
第三部分:实战步骤 - 制作你的第一个模板
假设你已经下载好了一个静态模板,里面有一个 index.html 文件。
步骤 1:重命名并放置文件
- 将你的静态模板文件夹(
my_template)重命名为一个有意义的名字,mymy_first_template。 - 将这个
mymy_first_template文件夹上传到 DedeCMS 程序的/templets/目录下。
步骤 2:修改首页模板
用代码编辑器(如 VS Code, Sublime Text, Notepad++)打开 /templets/mymy_first_template/index.html 文件。

(图片来源网络,侵删)
修改网站标题和 Logo
-
:找到
<title>标签,把里面的静态文字换成 DedeCMS 的标签。- 修改前:
<title>我的个人博客 - 首页</title> - 修改后:
<title>{dede:global name='cfg_webname'/} - {dede:field name='title'/}</title>{dede:global name='cfg_webname'/}是调用后台设置的网站全局名称。{dede:field name='title'/}是调用当前页面的标题(首页就是“首页”)。
- 修改前:
-
网站 Logo:找到 Logo 图片的
<img>标签,把src属性里的静态路径换成标签。- 修改前:
<img src="images/logo.png" alt="Logo"> - 修改后:
<img src="{dede:global name='cfg_cmspath'/}/templets/mymy_first_template/images/logo.png" alt="{dede:global name='cfg_webname'/}">{dede:global name='cfg_cmspath'/}是调用网站的根目录,这样可以保证路径在任何地方都正确。
- 修改前:
制作首页文章列表

(图片来源网络,侵删)
找到静态模板中文章列表部分的 HTML 代码,它可能长这样:
<!-- 原始静态列表 -->
<div class="news-list">
<div class="item">
<h3><a href="detail.html">这是一篇文章的标题</a></h3>
<p class="pic"><img src="images/pic1.jpg" alt="图片"></p>
<p class="desc">这里是文章摘要,用来吸引读者点击阅读更多内容...</p>
<span class="date">2025-10-27</span>
</div>
<div class="item">
<h3><a href="detail.html">这是另一篇文章的标题</a></h3>
<p class="pic"><img src="images/pic2.jpg" alt="图片"></p>
<p class="desc">这里是另一篇文章的摘要...</p>
<span class="date">2025-10-26</span>
</div>
</div>
我们要用 DedeCMS 标签把它变成动态的,将上面的代码替换为:
<!-- DedeCMS 动态列表 -->
<div class="news-list">
{dede:list pagesize='8'}
<div class="item">
<h3><a href="[field:arcurl/]">[field:title/]</a></h3>
<p class="pic"><img src="[field:litpic/]" alt="[field:title/]"></p>
<p class="desc">[field:description function='cn_substr(@me,150)'/]...</p>
<span class="date">[field:pubdate function='strftime("%Y-%m-%d",@me)'/]</span>
</div>
{/dede:list}
</div>
<!-- 添加分页 -->
<div class="page">
{dede:pagelist listsize='4' listitem='index pre pageno next end '/}
</div>
代码解释:
{dede:list pagesize='8'}...{/dede:list}:这是一个循环,DedeCMS 会自动在这里循环输出8篇文章。[field:arcurl/]:替换成每篇文章的真实链接。[field:title/]:替换成每篇文章的标题。[field:litpic/]:替换成每篇文章的缩略图。[field:description function='cn_substr(@me,150)'/]:替换成文章摘要,并只显示前150个字符。{dede:pagelist...}:在列表末尾添加分页条。
修改其他部分
- 栏目导航:找到导航栏的
<ul>或<nav>标签,把里面的静态链接替换成{dede:channel}- 页脚信息:把页脚的版权信息、备案号等用
{dede:global name='cfg_powerby'/}和{dede:global name='cfg_beian'/}等标签替换。 - 页脚信息:把页脚的版权信息、备案号等用
步骤 3:修改其他页面模板
一个完整的模板通常需要 index.html (首页)、list.html (列表页)、article_article.html (文章页)。
- 列表页 (
list.html):这个页面的结构和index.html非常相似,核心也是{dede:list}循环,但它通常没有那么多首页的推荐内容,你只需要复制一个index.html,然后删掉不需要的部分,保留文章列表和分页即可。 - 文章页 (
article_article.html):这个页面用来显示单篇文章的详细内容。- 用
{dede:field name='title'/}。 - 用
{dede:field name='body'/}。 - 发布时间、作者、点击量等信息也用相应的
{dede:field}标签调用。
- 用
步骤 4:在后台应用模板
- 登录你的 DedeCMS 后台。
- 菜单栏找到 “系统” -> “系统基本参数” -> “核心设置”。
- 找到 “模板默认风格” 选项,选择你刚刚上传的模板
mymy_first_template。 - 保存。
- 为了让效果立即生效,可以点击菜单栏 “生成” -> “更新主页HTML”,系统会根据你的新模板重新生成首页。
第四部分:常见问题与排错
-
网页样式乱了(CSS 路径问题)
- 原因:CSS 文件的路径是相对路径,上传到服务器后找不到。
- 解决:检查
<head>里的<link rel="stylesheet" href="...">,确保路径正确,如果模板和 CSS 文件在同一个文件夹下,可以直接写href="css/style.css",如果不确定,可以用{dede:global name='cfg_templeturl'/}/css/style.css来调用,cfg_templeturl会自动指向你的模板目录。
-
图片不显示
- 原因:和 CSS 路径问题一样,是图片路径错误。
- 解决:检查
<img src="...">里的src属性,对于上传到后台的缩略图,直接用[field:litpic/]即可,DedeCMS 会处理路径,对于模板自带的图片(如 logo),请使用绝对路径或相对于网站根目录的路径。
-
列表页没有内容
- 原因:后台没有为相应栏目指定文章,或者栏目选择的“列表内容模板”不正确。
- 解决:
- 去 “栏目” 管理,检查你想要显示文章的栏目,是否已经关联了文章。
- 点击某个栏目进入编辑,在右侧找到 模板”,确保它选择的是你模板文件夹下的
list.html。
-
标签不生效,直接显示
{dede:field name='title'/}这类代码- 原因:DedeCMS 没有正确解析标签。
- 解决:最常见的原因是 标签写错了,比如拼写错误、多打了一个空格、忘记用
{/dede:xxx}结束,请仔细核对标签代码。
总结与进阶
恭喜你!到这里,你已经掌握了 DedeCMS 模板制作的基本流程。
- 核心:静态页面 + 标签 = DedeCMS 模板。
- 关键:熟悉常用标签的写法和作用。
- 技巧:从修改现有模板开始,比从零开始要容易得多。
菜鸟进阶建议:
- 多看官方文档:DedeCMS 官网有详细的标签手册。
- 学习基础:花点时间学习一下 HTML, CSS 的基础知识,这会让你在修改模板时事半功倍。
- 善用浏览器开发者工具:按 F12 打开开发者工具,可以轻松检查网页元素、调试 CSS 样式,是排查问题的利器。
- 备份!备份!备份!:在修改任何文件之前,务必备份原始文件,养成好习惯,避免误操作导致数据丢失。
希望这份教程能帮助你顺利入门 DedeCMS 模板制作!祝你建站愉快!
