- 创建自定义模板文件
- 在后台模板管理中上传/导入模板
- 为指定栏目或文章设置使用该模板
- (可选)高级应用:按文章ID或关键字指定模板
第一步:创建自定义模板文件
这是最核心的一步,你需要创建一个符合 Dedecms 模板规范的 HTML 文件。

-
创建文件: 在你的电脑上新建一个
.htm文件,article_custom.htm,建议将其放在你的 Dedecms 模板目录下的一个子文件夹中,/templets/default/custom/,以便于管理。 -
编写模板代码: 这个模板文件和普通列表页、首页的写法一样,使用 Dedecms 的模板标签,你可以自由地设计 HTML 结构和 CSS 样式。
关键点:
- 文件头:必须在文件开头使用
<!DOCTYPE html>等标准 HTML5 标签。 - 调用文章内容:核心标签是
{dede:field.body/},它会输出当前文章的完整内容(包括你在编辑器里写的所有文字、图片等)。 - 调用文章字段:除了正文,你还可以调用文章的其他任意字段,
{dede:field.title/}{dede:field.pubdate function="MyDate('Y-m-d H:i',@me)"/}:发布时间{dede:field.writer/}:作者{dede:field.typename/}:栏目名称{dede:field.keywords/}{dede:field.description/}:摘要
- 调用自定义字段:如果你在文章模型中添加了自定义字段(如“产品规格”、“产地”等),也可以在这里调用,
{dede:field.product_specs/}。
- 文件头:必须在文件开头使用
示例 article_custom.htm 模板文件:

<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">{dede:field.title/}_我的网站</title>
<style>
/* 自定义样式 */
.custom-article {
font-family: 'Microsoft YaHei', sans-serif;
line-height: 1.8;
padding: 20px;
border: 1px solid #eee;
border-radius: 5px;
background-color: #f9f9f9;
}
.custom-article h1 {
color: #333;
text-align: center;
border-bottom: 2px solid #007bff;
padding-bottom: 10px;
}
.custom-article .article-info {
text-align: center;
color: #666;
margin-bottom: 20px;
}
.custom-article .article-content {
text-align: justify;
}
.custom-article .custom-field {
background-color: #e9f5ff;
padding: 10px;
margin: 15px 0;
border-left: 4px solid #007bff;
}
</style>
</head>
<body>
<div class="custom-article">
<h1>{dede:field.title/}</h1>
<div class="article-info">
发布时间:{dede:field.pubdate function="MyDate('Y-m-d H:i',@me)"/} |
作者:{dede:field.writer/} |
来源:{dede:field.typename/}
</div>
<!-- 这里调用文章正文 -->
<div class="article-content">
{dede:field.body/}
</div>
<!-- 假设你在文章模型里添加了一个名为 "video_url" 的自定义字段 -->
<div class="custom-field">
<strong>相关视频:</strong>
<a href="{dede:field.video_url/}" target="_blank">点击观看</a>
</div>
</div>
</body>
</html>
第二步:在后台模板管理中上传/导入模板
创建好文件后,你需要将它上传到 Dedecms 服务器上,并告诉系统这是一个可用的模板。
- 登录你的 Dedecms 后台。
- 进入 【系统】 -> 【系统基本参数】 -> 【核心设置】**。
- 找到 “模板默认风格目录”,确认它指向的是你的模板文件夹,
default,这确保系统能找到你的模板。 - 进入 【模板】 -> 【模板管理】**。
- 在左侧选择你的网站风格(通常是
default)。 - 点击右上角的 【导入模板】 按钮。
- 在弹出的页面中,点击 【选择文件】,选择你刚刚创建的
article_custom.htm文件。 - 勾选 “覆盖同名文件”(如果已存在)。
- 点击 【确定上传】。
上传成功后,你就可以在 【模板】 -> 【默认模板管理】 -> 页模板】** 列表中看到你刚上传的 article_custom.htm 了。
第三步:为指定栏目或文章设置使用该模板
这是将模板与内容关联起来的关键一步,Dedecms 提供了两种主要方式。
为整个栏目设置默认模板(推荐)
这种方式最常用,适用于某个特定栏目下的所有文章都使用同一种特殊样式。

- 进入 【核心】 -> 【栏目管理】**。
- 找到你想要应用自定义模板的栏目(产品案例”)。
- 点击该栏目后面的 【修改】 按钮。
- 在栏目编辑页面,向下滚动找到 “列表选项” 或 “高级选项” 选项卡。
- 找到 页模板” 这个选项。
- 从下拉菜单中选择你刚刚上传的自定义模板
article_custom.htm。 - 保存修改。
效果:从此以后,任何发布在这个“产品案例”栏目下的文章,其内容页都会自动调用 article_custom.htm 这个模板来显示。
为单个文章指定模板
如果你只需要某几篇文章使用特殊模板,而不是整个栏目,可以为单个文章指定。
- 进入 【核心】 -> 发布】 -> 【普通文章发布】 或 【批量维护】 -> 【文章管理】**。
- 找到你需要设置的文章,点击 【编辑】。
- 在文章编辑页面,切换到 【高级选项】 选项卡。
- 找到 页模板” 这个选项。
- 从下拉菜单中选择你的自定义模板
article_custom.htm。 - 保存文章。
效果:只有这一篇文章会使用 article_custom.htm 模板,同栏目的其他文章仍使用默认模板。
第四步:(可选)高级应用:按文章ID或关键字指定模板
这是 Dedecms 一个非常强大的功能,通过修改 article_archives.php 文件实现,可以实现更灵活的模板调用。
场景:你不想去每个文章里改模板,而是希望根据文章ID范围或者文章标题中的关键字来自动匹配模板。
操作步骤:
-
找到并编辑文件: 用 FTP 或文件管理器,进入你的 Dedecms 根目录,找到
/include/helpers/archive.helper.php文件。注意:这是核心文件,修改前务必备份! -
定位代码: 在
archive.helper.php文件中,找到ParseTemplets()函数(大约在第 150 行左右)。 -
修改代码: 在
return $file;这行代码之前,插入你自己的判断逻辑。示例1:按文章ID指定模板 假设文章ID为 10 到 20 的文章使用
article_special.htm模板。// 在 archive.helper.php 的 ParseTemplets() 函数中 // ... 原有代码 ... if($typeid == 0) $typeid = $GLOBALS['autoChannelid']; // ====== 在这里插入你的自定义代码 ====== // 示例1:按文章ID指定模板 if ($aid >= 10 && $aid <= 20) { $file = str_replace('.htm', '_special.htm', $file); // 将默认模板文件名后缀替换为 _special.htm } // ===================================== if(defined('DEDEMOB')) { $file = str_replace(DEDETEMPLATE.'/'.$GLOBALS['cfg_df_style'], DEDETEMPLATE.'/'.$GLOBALS['cfg_df_style'].'/m', $file); } return $file;示例2:按文章关键字指定模板 假设文章标题或内容中包含“公告”的文章使用
article_announce.htm模板。// 在 archive.helper.php 的 ParseTemplets() 函数中 // ... 原有代码 ... if($typeid == 0) $typeid = $GLOBALS['autoChannelid']; // ====== 在这里插入你的自定义代码 ====== // 示例2:按文章关键字指定模板 if (strpos($row['title'], '公告') !== false || strpos($row['body'], '公告') !== false) { $file = str_replace('.htm', '_announce.htm', $file); // 将默认模板文件名后缀替换为 _announce.htm } // ===================================== if(defined('DEDEMOB')) { $file = str_replace(DEDETEMPLATE.'/'.$GLOBALS['cfg_df_style'], DEDETEMPLATE.'/'.$GLOBALS['cfg_df_style'].'/m', $file); } return $file; -
上传模板文件: 记得将你用到的特殊模板文件(如
article_special.htm)也上传到服务器的模板目录下。 -
更新缓存: 修改完文件后,去后台 【系统】 -> 【一键更新缓存】**,更新一下系统缓存,使修改生效。
| 需求场景 | 推荐方法 | 优点 | 缺点 |
|---|---|---|---|
| 某个栏目所有文章都使用特殊样式 | 栏目设置默认模板 | 简单、直观、易于管理 | 整个栏目样式统一,不够灵活 |
| 仅个别文章使用特殊样式 | 单篇文章指定模板 | 精确控制,不影响其他文章 | 操作繁琐,文章多时很麻烦 |
| 根据ID、关键字等复杂规则自动匹配模板 | 修改 archive.helper.php |
极其灵活,自动化,适合大规模内容 | 需要修改核心文件,有一定技术门槛,升级麻烦 |
对于大多数用户来说,方式一和方式二已经足够满足日常需求,请根据你的具体情况选择最合适的方法。
