1. 创建自定义模板文件
  2. 在后台模板管理中上传/导入模板
  3. 为指定栏目或文章设置使用该模板
  4. (可选)高级应用:按文章ID或关键字指定模板

第一步:创建自定义模板文件

这是最核心的一步,你需要创建一个符合 Dedecms 模板规范的 HTML 文件。

dedecms文章自定义网页模板
(图片来源网络,侵删)
  1. 创建文件: 在你的电脑上新建一个 .htm 文件,article_custom.htm,建议将其放在你的 Dedecms 模板目录下的一个子文件夹中,/templets/default/custom/,以便于管理。

  2. 编写模板代码: 这个模板文件和普通列表页、首页的写法一样,使用 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 模板文件:

dedecms文章自定义网页模板
(图片来源网络,侵删)
<!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)"/} &nbsp;|&nbsp;
            作者:{dede:field.writer/} &nbsp;|&nbsp;
            来源:{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 服务器上,并告诉系统这是一个可用的模板。

  1. 登录你的 Dedecms 后台。
  2. 进入 【系统】 -> 【系统基本参数】 -> 【核心设置】**。
  3. 找到 “模板默认风格目录”,确认它指向的是你的模板文件夹,default,这确保系统能找到你的模板。
  4. 进入 【模板】 -> 【模板管理】**。
  5. 在左侧选择你的网站风格(通常是 default)。
  6. 点击右上角的 【导入模板】 按钮。
  7. 在弹出的页面中,点击 【选择文件】,选择你刚刚创建的 article_custom.htm 文件。
  8. 勾选 “覆盖同名文件”(如果已存在)。
  9. 点击 【确定上传】

上传成功后,你就可以在 【模板】 -> 【默认模板管理】 -> 页模板】** 列表中看到你刚上传的 article_custom.htm 了。


第三步:为指定栏目或文章设置使用该模板

这是将模板与内容关联起来的关键一步,Dedecms 提供了两种主要方式。

为整个栏目设置默认模板(推荐)

这种方式最常用,适用于某个特定栏目下的所有文章都使用同一种特殊样式。

dedecms文章自定义网页模板
(图片来源网络,侵删)
  1. 进入 【核心】 -> 【栏目管理】**。
  2. 找到你想要应用自定义模板的栏目(产品案例”)。
  3. 点击该栏目后面的 【修改】 按钮。
  4. 在栏目编辑页面,向下滚动找到 “列表选项”“高级选项” 选项卡。
  5. 找到 页模板” 这个选项。
  6. 从下拉菜单中选择你刚刚上传的自定义模板 article_custom.htm
  7. 保存修改。

效果:从此以后,任何发布在这个“产品案例”栏目下的文章,其内容页都会自动调用 article_custom.htm 这个模板来显示。

为单个文章指定模板

如果你只需要某几篇文章使用特殊模板,而不是整个栏目,可以为单个文章指定。

  1. 进入 【核心】 -> 发布】 -> 【普通文章发布】【批量维护】 -> 【文章管理】**。
  2. 找到你需要设置的文章,点击 【编辑】
  3. 在文章编辑页面,切换到 【高级选项】 选项卡。
  4. 找到 页模板” 这个选项。
  5. 从下拉菜单中选择你的自定义模板 article_custom.htm
  6. 保存文章。

效果:只有这一篇文章会使用 article_custom.htm 模板,同栏目的其他文章仍使用默认模板。


第四步:(可选)高级应用:按文章ID或关键字指定模板

这是 Dedecms 一个非常强大的功能,通过修改 article_archives.php 文件实现,可以实现更灵活的模板调用。

场景:你不想去每个文章里改模板,而是希望根据文章ID范围或者文章标题中的关键字来自动匹配模板。

操作步骤

  1. 找到并编辑文件: 用 FTP 或文件管理器,进入你的 Dedecms 根目录,找到 /include/helpers/archive.helper.php 文件。注意:这是核心文件,修改前务必备份!

  2. 定位代码: 在 archive.helper.php 文件中,找到 ParseTemplets() 函数(大约在第 150 行左右)。

  3. 修改代码: 在 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;
  4. 上传模板文件: 记得将你用到的特殊模板文件(如 article_special.htm)也上传到服务器的模板目录下。

  5. 更新缓存: 修改完文件后,去后台 【系统】 -> 【一键更新缓存】**,更新一下系统缓存,使修改生效。

需求场景 推荐方法 优点 缺点
某个栏目所有文章都使用特殊样式 栏目设置默认模板 简单、直观、易于管理 整个栏目样式统一,不够灵活
仅个别文章使用特殊样式 单篇文章指定模板 精确控制,不影响其他文章 操作繁琐,文章多时很麻烦
根据ID、关键字等复杂规则自动匹配模板 修改 archive.helper.php 极其灵活,自动化,适合大规模内容 需要修改核心文件,有一定技术门槛,升级麻烦

对于大多数用户来说,方式一和方式二已经足够满足日常需求,请根据你的具体情况选择最合适的方法。