DedeCMS 菜鸟模板制作全攻略

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

dedecms 菜鸟教程模板
(图片来源网络,侵删)

你可以把 DedeCMS 模板想象成“填空题”:

  • HTML/CSS 是题目的背景和框架(我的名字是 ____”)。
  • DedeCMS 标签 是需要填写的答案({dede:field name='typename'/})。
  • DedeCMS 系统 是批改作业的老师,它会自动把答案填进去,生成最终的网页。

第一部分:准备工作

  1. 本地环境:在你的电脑上搭建一个 DedeCMS 运行环境,最简单的方式是使用集成环境包,如:
    • phpStudy (推荐,支持 Windows)
    • 宝塔面板 (推荐,支持 Linux/Windows,图形化操作更简单)
    • XAMPP (经典选择)
  2. DedeCMS 程序:从 DedeCMS 官网下载最新稳定版程序,并解压到你本地环境的网站根目录(如 phpStudy/WWW/)。
  3. 一个静态网页模板:这是制作 DedeCMS 模板的基础,你可以:
    • 自己用 HTML/CSS 写一个简单的静态网站。
    • 从网上下载一个免费的响应式网站模板(推荐,有很多漂亮的模板可选),下载后解压,你会看到 index.htmlcss/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:重命名并放置文件

  1. 将你的静态模板文件夹(my_template)重命名为一个有意义的名字,mymy_first_template
  2. 将这个 mymy_first_template 文件夹上传到 DedeCMS 程序的 /templets/ 目录下。

步骤 2:修改首页模板

用代码编辑器(如 VS Code, Sublime Text, Notepad++)打开 /templets/mymy_first_template/index.html 文件。

dedecms 菜鸟教程模板
(图片来源网络,侵删)

修改网站标题和 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'/} 是调用网站的根目录,这样可以保证路径在任何地方都正确。

制作首页文章列表

dedecms 菜鸟教程模板
(图片来源网络,侵删)

找到静态模板中文章列表部分的 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:在后台应用模板

  1. 登录你的 DedeCMS 后台。
  2. 菜单栏找到 “系统” -> “系统基本参数” -> “核心设置”
  3. 找到 “模板默认风格” 选项,选择你刚刚上传的模板 mymy_first_template
  4. 保存。
  5. 为了让效果立即生效,可以点击菜单栏 “生成” -> “更新主页HTML”,系统会根据你的新模板重新生成首页。

第四部分:常见问题与排错

  1. 网页样式乱了(CSS 路径问题)

    • 原因:CSS 文件的路径是相对路径,上传到服务器后找不到。
    • 解决:检查 <head> 里的 <link rel="stylesheet" href="...">,确保路径正确,如果模板和 CSS 文件在同一个文件夹下,可以直接写 href="css/style.css",如果不确定,可以用 {dede:global name='cfg_templeturl'/}/css/style.css 来调用,cfg_templeturl 会自动指向你的模板目录。
  2. 图片不显示

    • 原因:和 CSS 路径问题一样,是图片路径错误。
    • 解决:检查 <img src="..."> 里的 src 属性,对于上传到后台的缩略图,直接用 [field:litpic/] 即可,DedeCMS 会处理路径,对于模板自带的图片(如 logo),请使用绝对路径或相对于网站根目录的路径。
  3. 列表页没有内容

    • 原因:后台没有为相应栏目指定文章,或者栏目选择的“列表内容模板”不正确。
    • 解决
      1. “栏目” 管理,检查你想要显示文章的栏目,是否已经关联了文章。
      2. 点击某个栏目进入编辑,在右侧找到 模板”,确保它选择的是你模板文件夹下的 list.html
  4. 标签不生效,直接显示 {dede:field name='title'/} 这类代码

    • 原因:DedeCMS 没有正确解析标签。
    • 解决:最常见的原因是 标签写错了,比如拼写错误、多打了一个空格、忘记用 {/dede:xxx} 结束,请仔细核对标签代码。

总结与进阶

恭喜你!到这里,你已经掌握了 DedeCMS 模板制作的基本流程。

  • 核心静态页面 + 标签 = DedeCMS 模板
  • 关键:熟悉常用标签的写法和作用。
  • 技巧:从修改现有模板开始,比从零开始要容易得多。

菜鸟进阶建议

  1. 多看官方文档:DedeCMS 官网有详细的标签手册。
  2. 学习基础:花点时间学习一下 HTML, CSS 的基础知识,这会让你在修改模板时事半功倍。
  3. 善用浏览器开发者工具:按 F12 打开开发者工具,可以轻松检查网页元素、调试 CSS 样式,是排查问题的利器。
  4. 备份!备份!备份!:在修改任何文件之前,务必备份原始文件,养成好习惯,避免误操作导致数据丢失。

希望这份教程能帮助你顺利入门 DedeCMS 模板制作!祝你建站愉快!