织梦DedeCMS模板制作完全指南
织梦模板的本质是将静态的HTML网页与织梦的动态标签相结合,最终通过织梦系统解析,生成动态的网站页面,整个过程可以概括为:HTML搭建骨架 → CSS美化样式 → 织梦标签填充内容 → JS实现交互。

(图片来源网络,侵删)
第一部分:模板的构成与目录结构
在开始制作之前,你需要了解织梦模板的基本构成和存放位置。
模板文件存放目录
织梦默认的模板目录位于:/templets/,为了方便管理,我们通常会在templets下创建一个以你的网站名称或主题名称命名的文件夹,例如/templets/default/ 或 /templets/mytheme/。
核心模板文件
一个完整的网站模板,至少需要以下几个核心文件:
index.html: 网站首页模板。article_list.html: 文章列表页模板(新闻列表、产品列表)。article_article.html: 文章内容页模板(新闻详情、产品详情)。index.htm: (非常重要) 这是首页的静态文件,当你通过后台“生成”首页时,织梦会读取index.html模板,生成index.htm文件并发送到网站根目录,用户访问时,直接访问index.htm,速度更快。head.htm: 公共头部文件,通常包含网站的<head>部分(如标题、CSS、JS引入)、Logo、主导航栏等,在首页和其他页面中通过{include file='head.htm' /}来调用。footer.htm: 公共底部文件,通常包含版权信息、友情链接、统计代码等,同样通过{include file='footer.htm' /}调用。
良好的习惯:将公共部分(如头部、底部、侧边栏)拆分成独立的.htm文件,然后在各个页面模板中引用,这样可以大大提高修改效率。

(图片来源网络,侵删)
第二部分:模板制作核心步骤
准备HTML静态原型
这是模板制作的基础,你可以使用Dreamweaver、VS Code、Sublime Text等代码编辑器,或者使用Bootstrap、Element UI等前端框架来构建一个标准的、响应式的HTML网页。
一个简单的HTML原型示例 (index.html):
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">我的织梦网站 - 首页</title>
<link rel="stylesheet" href="/static/css/style.css">
</head>
<body>
<!-- 公共头部 -->
<header>
<div class="logo">我的织梦网站</div>
<nav>
<ul>
<li><a href="#">首页</a></li>
<li><a href="#">关于我们</a></li>
<li><a href="#">新闻中心</a></li>
<li><a href="#">产品展示</a></li>
<li><a href="#">联系我们</a></li>
</ul>
</nav>
</header>
<!-- 主要内容区 -->
<main>
<section class="slider">
<!-- 轮播图内容 -->
</section>
<section class="news-list">
<h2>最新资讯</h2>
<ul>
<li><a href="#">这里是新闻标题1...</a></li>
<li><a href="#">这里是新闻标题2...</a></li>
<li><a href="#">这里是新闻标题3...</a></li>
<li><a href="#">这里是新闻标题4...</a></li>
</ul>
</section>
</main>
<!-- 公共底部 -->
<footer>
<p>© 2025 我的织梦网站 版权所有</p>
</footer>
<script src="/static/js/jquery.min.js"></script>
<script src="/static/js/main.js"></script>
</body>
</html>
织梦标签的植入
我们将HTML中的静态内容替换为织梦的动态标签。
网站基本信息标签

(图片来源网络,侵删)
这些标签通常放在head.htm中。
- :
{dede:global.cfg_webname/} - 网站描述:
{dede:global.cfg_description/} - 网站关键词:
{dede:global.cfg_keywords/} - CSS/JS文件路径: 为了方便,可以在后台设置全局变量,如
{dede:global.cfg_cmspath/},然后在模板中使用{dede:global.cfg_cmspath/}/static/css/style.css。
修改后的 head.htm 示例:
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">{dede:global.cfg_webname/} - {dede:field.title/}</title>
<meta name="description" content="{dede:global.cfg_description/}">
<meta name="keywords" content="{dede:global.cfg_keywords/}">
<link rel="stylesheet" href="{dede:global.cfg_cmspath/}/static/css/style.css">
</head>
注意:{dede:field.title/}会获取当前页面的标题,首页就是网站首页标题。
标签
现在修改我们的 index.html。
- 调用文章列表: 使用
{dede:arclist}标签,这是最常用、最核心的标签之一。typeid: 指定栏目ID,调用指定栏目下的文章,不填则调用所有顶级栏目。row: 调用文章数量。titlelen: 标题长度。infolen: 简介(长度。
修改后的首页 index.html 核心部分:
<!-- 公共头部 -->
<header>
<div class="logo">{dede:global.cfg_webname/}</div>
<nav>
<ul>
<li><a href="/">首页</a></li>
<!-- 调用栏目导航 -->
{dede:channel type='top' row='5'}
<li><a href="[field:typelink/]">[field:typename/]</a></li>
{/dede:channel}
</ul>
</nav>
</header>
<!-- 主要内容区 -->
<main>
<section class="slider">
<!-- 调用首页焦点图 -->
{dede:arclist row='5' type='image.'}
<img src="[field:picname/]" alt="[field:title function='html2text(@me)'/]">
{/dede:arclist}
</section>
<section class="news-list">
<h2>最新资讯</h2>
<ul>
<!-- 调用文章列表 -->
{dede:arclist typeid='1' row='4' titlelen='30'}
<li>
<span class="date">[field:pubdate function='strftime("%Y-%m-%d", @me)'/]</span>
<a href="[field:arcurl/]">[field:title/]</a>
</li>
{/dede:arclist}
</ul>
</section>
</main>
<!-- 公共底部 -->
<footer>
<p>© 2025 {dede:global.cfg_webname/} 版权所有</p>
</footer>
[field:picname/],[field:title/],[field:arcurl/]是arclist标签内的字段名,分别代表图片、标题和链接。function='strftime("%Y-%m-%d", @me)'是对日期字段进行格式化处理的函数。
列表页和内容页模板
-
列表页 (
article_list.html):- 使用
{dede:list}标签来循环显示当前栏目下的文章列表。 {dede:list pagesize='10'}:pagesize控制每页显示的文章数。- 列表页下方通常需要分页条,使用
{dede:pagelist listsize='4'/}。
<!-- article_list.html --> <h1>{dede:field.typename/}</h1> <ul> {dede:list pagesize='10'} <li> <span class="date">[field:pubdate function='strftime("%Y-%m-%d", @me)'/]</span> <a href="[field:arcurl/]">[field:title/]</a> </li> {/dede - 使用
