核心概念:织梦CMS模板工作原理
在开始之前,你必须理解织梦CMS的模板机制,这会让你事半功倍。

(图片来源网络,侵删)
- 模板文件:这是你网站的“骨架”和“皮肤”,它定义了网页的HTML结构、CSS样式和JS交互,文件是
.htm后缀,但实际上里面混合了HTML代码和织梦的标签。 - 这是织梦的“灵魂”,标签不是普通的HTML,而是织梦定义的特殊指令,用来从数据库中调用内容并显示在页面上。
{dede:arclist}用来调用文章列表。 - 解析过程:当用户访问你的网站时,服务器会执行以下步骤:
- 找到对应的模板文件(如
index.htm)。 - 解析文件中的所有织梦标签。
- 将标签替换成从数据库中查询出的实际内容。
- 将最终的纯HTML代码发送到用户的浏览器。
- 找到对应的模板文件(如
一个简单的例子:
- 模板文件
index.htm中的一行代码:<h2>{dede:global.cfg_webname/}</h2> - 后台设置:在后台“系统” -> “系统基本参数” -> “站点设置”中,网站名称设置为“我的织梦站”。
- 最终输出的HTML代码:
<h2>我的织梦站</h2>
第一步:准备工作
- 本地环境:强烈建议你在本地电脑上搭建一个测试环境,推荐使用 phpStudy 或 XAMPP 等集成环境,这样你可以反复测试,不会影响线上网站。
- 织梦程序:从织梦官网下载 DedeCMS V5.7 的最新稳定版。
- FTP工具:如 FileZilla,用于将本地文件上传到服务器。
- 代码编辑器:如 VS Code、Sublime Text、Dreamweaver 等,用于编写和修改模板文件。强烈推荐使用 VS Code,它对代码高亮、提示和FTP功能支持都很好。
第二步:模板文件结构
一个标准的织梦模板通常包含以下文件和文件夹,它们都位于 templets/ 目录下。
/你的网站根目录/
├── /templets/ # 模板主目录
│ ├── /default/ # 默认模板文件夹(我们通常在这里修改或新建自己的)
│ │ ├── index.htm # 首页模板
│ │ ├── article_list.htm # 文章列表页模板
│ │ ├── article_article.htm # 文章内容页模板
│ │ ├── search.htm # 搜索页模板
│ │ ├── head.htm # 公共头部文件 (通过 {dede:include filename="head.htm"/} 调用)
│ │ ├── footer.htm # 公共底部文件
│ │ └── ... # 其他页面模板
│ └── /my_template/ # 你自己创建的新模板文件夹
│ └── (把上面所有文件复制过来)
└── /dede/ # 后台管理目录
最佳实践:不要直接修改 default 文件夹,建议复制 default 文件夹,重命名为一个你自己的名字(如 my_site),然后在这个新文件夹里进行所有修改,最后在后台“模板管理”中选择你自己的模板。
第三步:制作首页模板
首页是网站的“脸面”,我们以制作首页为例。

(图片来源网络,侵删)
创建基础HTML结构
用你的代码编辑器新建一个 index.htm 文件,写入一个标准的HTML5结构。
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">{dede:global.cfg_webname/}</title>
<meta name="keywords" content="{dede:global.cfg_keywords/}">
<meta name="description" content="{dede:global.cfg_description/}">
<!-- 在这里引入你的CSS文件 -->
<link rel="stylesheet" href="/templets/my_template/css/style.css">
</head>
<body>
<!-- 引入公共头部 -->
{dede:include filename="head.htm"/}
<div class="main-container">
<div class="slider">
<!-- 这里放轮播图 -->
</div>
<div class="content-wrapper">
<div class="left-content">
<!-- 调用文章列表 -->
<h2>最新文章</h2>
{dede:arclist titlelen='40' row='10'}
<li>
<a href="[field:arcurl/]">[field:title/]</a>
<span>[field:pubdate function="MyDate('Y-m-d', @me)"/]</span>
</li>
{/dede:arclist}
</div>
<div class="right-sidebar">
<!-- 调用单页文档(如“关于我们”) -->
{dede:sql sql="SELECT * FROM `dede_arctype` WHERE `id` = 1"}
<h3>[field:typename/]</h3>
[field:content/]
{/dede:sql}
</div>
</div>
</div>
<!-- 引入公共底部 -->
{dede:include filename="footer.htm"/}
<!-- 在这里引入你的JS文件 -->
<script src="/templets/my_template/js/main.js"></script>
</body>
</html>
解析织梦标签
在上面的代码中,我们已经用到了几个核心标签,我们来详细解释一下:
-
全局标签:
{dede:global.cfg_webname/}:调用网站名称。{dede:global.cfg_keywords/}:调用网站关键词。{dede:global.cfg_description/}:调用网站描述。
-
包含标签:
(图片来源网络,侵删){dede:include filename="head.htm"/}:将head.htm文件的内容原封不动地插入到这里,这实现了代码复用,修改head.htm就能修改所有页面的头部。
-
文章列表标签:
{dede:arclist ...}:这是调用文章列表的最重要标签。titlelen='40'长度限制为40个字符。row='10':调用10条文章。[field:arcurl/]:文章的链接地址。[field:title/]:文章的标题。[field:pubdate ...]:文章的发布日期,function="MyDate('Y-m-d', @me)"是一个函数,用来格式化日期显示为“年-月-日”。
-
SQL查询标签:
{dede:sql ...}:允许你直接执行SQL语句来查询数据,这里我们查询了ID为1的栏目,并输出了其名称和内容。注意:直接使用SQL有风险,请确保你的SQL是安全的。
创建公共文件
head.htm:通常包含<head>标签里的所有内容,以及网站的<header>导航栏等。footer.htm:通常包含网站的<footer>底部版权信息、友情链接等。
这样做的好处是,当你要修改导航栏时,只需要修改 head.htm 一个文件即可。
第四步:制作其他页面模板
首页制作完成后,其他页面的逻辑是相似的。
-
文章列表页 (
article_list.htm):- 这个页面用来显示某个分类下的所有文章。
- 核心标签是
{dede:list},它与arclist类似,但通常用于分页列表。 - 需要一个分页标签:
{dede:pagelist listsize='4' listitem='info,index,next,end,pre,option'/}。
-
页 (
article_article.htm):- 这个页面用来显示单篇文章的详细内容。
- 核心标签是
{dede:field},用来获取当前文章的字段。 {dede:field.title/}获取文章标题,{dede:field.body/}获取文章正文内容。
第五步:后台设置与切换
模板文件都准备好了,现在需要告诉织梦使用你的新模板。
- 上传模板:通过FTP工具,将你整个
templets/my_template文件夹上传到网站的templets/目录下。 - 登录后台:进入网站后台
/dede/。 - 选择模板:
- 在左侧菜单找到 “模板” -> “默认模板管理”。
- 你会看到首页、列表页、内容页等选项。
- 在对应的下拉菜单中,选择你刚刚上传的模板文件夹名,
my_template。 - 点击 “更新” 或 “提交” 按钮。
- 生成网站:
- 为了让所有页面都应用新模板,需要重新生成。
- 在后台找到 “生成” -> “一键更新网站”。
- 勾选所有选项(首页、栏目、内容等),然后点击 “开始执行”,这个过程可能需要一些时间,请耐心等待。
完成后,清空浏览器缓存,访问你的网站,就能看到全新的模板效果了。
第六步:进阶技巧与注意事项
- CSS和JS路径:模板中引用的CSS和JS文件路径,建议使用绝对路径(如
/templets/my_template/css/style.css)或者使用织梦的全局变量{dede:global.cfg_templets_dir/},href="{dede:global.cfg_templets_dir/}/my_template/css/style.css",这样可以避免更换目录后路径失效。 - 模板制作流程:通常是先写好静态HTML和CSS,确认页面效果无误后,再用织梦标签去替换掉静态内容。
- 官方资源:多去织梦官方论坛(如 dedecms.com)和文档中心学习,上面有海量的模板标签说明和教程。
- 安全第一:自定义模板时,特别是使用
{dede:sql}标签时,务必注意SQL注入的风险,不要让用户输入直接进入SQL查询。
希望这份详细的指南能帮助你成功制作出自己的织梦CMS模板!祝你成功!
