DedeCMS(织梦内容管理系统)本身是一个经典的 PHP CMS,但其模板系统非常灵活,完全可以支持现代化的 HTML5 + CSS3 + JavaScript 技术栈,制作一个 HTML5 模板,核心在于修改模板文件中的 HTML 标签和结构,并引入相应的 CSS 和 JS

dedecms html5模板
(图片来源网络,侵删)

下面我将从准备工作、核心修改步骤、一个简单示例、以及推荐资源四个方面,为你提供一个完整的指南。


准备工作

在开始之前,请确保你已经:

  1. 本地环境:搭建好 PHP + MySQL 环境(如 XAMPP, WampServer, Docker 等)。
  2. DedeCMS 程序:下载并安装好 DedeCMS 程序到你的本地环境,建议使用一个稳定的版本,如 DedeCMS V5.7 或 V57_SP1。
  3. 代码编辑器:准备一个专业的代码编辑器,如 VS Code、Sublime Text 或 PhpStorm,它们能提供语法高亮和代码提示。
  4. 基础了解
    • HTML5:了解新的语义化标签,如 <header>, <nav>, <main>, <article>, <section>, <aside>, <footer> 等。
    • CSS3:了解选择器、弹性布局、媒体查询等。
    • DedeCMS 模板机制:了解 DedeCMS 的模板标签,如 {dede:field.title/}, {dede:arclist row='10' titlelen='30'} 等。

核心修改步骤

一个典型的 DedeCMS 模板改造,主要涉及以下几个文件:

  • index.html (首页模板)
  • article_article.htm (文章内容页模板)
  • list_artile.htm (文章列表页模板)
  • head.htm (公共头部文件)
  • footer.htm (公共底部文件)

步骤 1:创建并设置 HTML5 文档结构

这是最关键的一步,你需要将模板文件的开头和结尾修改为符合 HTML5 规范的结构。

dedecms html5模板
(图片来源网络,侵删)

head.htm 为例:

旧的 XHTML 结构 (可能类似于这样):

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset={dede:global.cfg_soft_lang/}" />{dede:field.title/}_{dede:global.cfg_webname/}</title>
<meta name="keywords" content="{dede:field.keywords/}" />
<meta name="description" content="{dede:field.description function='html2text(@me)'/}" />
<link rel="stylesheet" href="/templets/default/style/dedecms.css" type="text/css" />
</head>
<body>

新的 HTML5 结构 (推荐):

<!DOCTYPE html>
<html lang="{dede:global.cfg_langcode/}">
<head>
    <!-- 使用 meta charset 标签,更简洁 -->
    <meta charset="{dede:global.cfg_soft_lang/}">
    <!-- 视口设置,对移动端友好,非常重要! -->
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    {dede:field.title/}_{dede:global.cfg_webname/}</title>
    <!-- SEO 优化 -->
    <meta name="keywords" content="{dede:field.keywords/}">
    <meta name="description" content="{dede:field.description function='html2text(@me)'/}">
    <!-- 引入 CSS 文件,建议使用相对路径 -->
    <link rel="stylesheet" href="/templets/你的模板名称/css/style.css">
    <!-- 可选:引入图标库,如 Font Awesome -->
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css">
    <!-- 可选:预加载关键资源 -->
    <link rel="preload" href="/templets/你的模板名称/css/style.css" as="style">
</head>
<body>

修改要点说明:

dedecms html5模板
(图片来源网络,侵删)
  • <!DOCTYPE html>:HTML5 的标准声明,简单直接。
  • <html lang="...">:指定网页的语言,有助于搜索引擎理解。{dede:global.cfg_langcode/} 通常会输出 zh-CN
  • <meta charset="...">:定义字符编码,替代了旧的 http-equiv="Content-Type"
  • <meta name="viewport" ...>响应式设计的基石,告诉浏览器如何控制页面的尺寸和缩放。

步骤 2:使用语义化标签重构页面结构

将原来用 <div>class 名来定义的区块,替换为 HTML5 的语义化标签,这不仅能提升 SEO,还能让代码更易读、更易维护。

index.html 为例:

旧的 Div 结构:

<div class="header">
    <div class="logo">...</div>
    <div class="nav">...</div>
</div>
<div class="main">
    <div class="content">...</div>
    <div class="sidebar">...</div>
</div>
<div class="footer">...</div>

新的 HTML5 语义化结构:

<header class="site-header">
    <div class="logo">{dede:global.cfg_webname/}</div>
    <!-- 调用导航栏标签 -->
    {dede:channelartlist type='top' row='1'}
        <nav class="main-nav">
            {dede:channel type='top' row='8' currentstyle="<li class='active'><a href='~typelink~'>~typename~</a></li>"}
                <li><a href="[field:typelink/]">[field:typename/]</a></li>
            {/dede:channel}
        </nav>
    {/dede:channelartlist}
</header>
<main class="site-main">
    <section class="content-area">
        <!-- 调用文章列表 -->
        {dede:arclist row='5' titlelen='30'}
            <article class="post">
                <h2><a href="[field:arcurl/]">[field:title/]</a></h2>
                <div class="post-meta">[field:pubdate function="MyDate('Y-m-d',@me)"/]</div>
                <p>[field:description/]...</p>
            </article>
        {/dede:arclist}
    </section>
    <aside class="widget-area">
        <!-- 调用侧边栏模块 -->
        {dede:include filename="side.htm"/}
    </aside>
</main>
<footer class="site-footer">
    <p>Copyright © {dede:global.cfg_webname/} - {dede:php}echo date('Y');{/dede:php}</p>
</footer>

常用语义化标签:

  • <header>:页面或区域的头部,通常包含 logo、导航等。
  • <nav>:导航链接的区域。
  • <main>:页面的主要内容,一个页面中只应有一个 <main>
  • <article>:独立的、完整的内容块,如一篇文章、一个帖子。
  • <section>:文档中的一个区域,通常带有标题。<article> 是一种特殊的 <section>
  • <aside>:侧边栏或与主要内容相关但独立的内容,如广告、相关链接。
  • <footer>:页面或区域的底部,通常包含版权信息、联系方式等。

步骤 3:引入和编写 CSS/JS

  1. 创建 CSS 文件:在模板目录下新建一个 css 文件夹,并创建 style.css 文件。
  2. 修改模板中的 CSS 引用:将 head.htm 中的 CSS 路径指向你的新 CSS 文件。
  3. 编写 CSS:使用 CSS3 来美化你的 HTML5 结构,重点使用 FlexboxGrid 布局,并结合 媒体查询 实现响应式设计。

示例 CSS (style.css) 片段:

/* 使用 Flexbox 布局主容器 */
.site-main {
    display: flex;
    gap: 20px; /* 元素间距 */
    margin-top: 20px;
}
.content-area {
    flex: 3; /* 内容区域占 3 份 */
}
.widget-area {
    flex: 1; /* 侧边栏占 1 份 */
}
/* 响应式设计:当屏幕宽度小于 768px 时 */
@media (max-width: 768px) {
    .site-main {
        flex-direction: column; /* 改为垂直排列 */
    }
    .content-area, .widget-area {
        flex: 100%; /* 宽度都占满 */
    }
}
/* 美化文章列表 */
.post {
    border-bottom: 1px solid #eee;
    padding-bottom: 15px;
    margin-bottom: 15px;
}
.post h2 a {
    color: #333;
    text-decoration: none;
}
.post h2 a:hover {
    color: #0066cc;
}

步骤 4:后台设置与更新

  1. 选择模板:登录 DedeCMS 后台,进入【系统】-> 【系统基本参数】-> 核心设置,在 “默认模板风格” 处选择你新建的模板文件夹名称。
  2. 生成 HTML:模板修改后,需要重新生成页面才能看到效果,进入【生成】-> HTML更新,你可以选择更新首页、栏目页或所有文档。
  3. 清理缓存:如果页面显示异常,可以尝试在后台【系统】-> 系统设置-> 性能选项中清理一下模板缓存。

一个简单的模板文件示例

这是一个极简的 index.html 示例,展示了如何整合 HTML5、DedeCMS 标签和 CSS 链接。

templets/我的模板名称/index.html

<!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>
    <link rel="stylesheet" href="/templets/我的模板名称/css/style.css">
</head>
<body>
    <header class="site-header">
        <h1>{dede:global.cfg_webname/}</h1>
        <nav>
            {dede:channel type='top' row='8'}
                <a href="[field:typelink/]">[field:typename/]</a>
            {/dede:channel}
        </nav>
    </header>
    <main class="container">
        <section class="content">
            <h2>最新文章</h2>
            {dede:arclist row='10' titlelen='40'}
                <article class="excerpt">
                    <h3><a href="[field:arcurl/]">[field:title/]</a></h3>
                    <p class="meta">发布于:[field:pubdate function="MyDate('Y-m-d',@me)"]</p>
                    <p>[field:description/]...</p>
                </article>
            {/dede:arclist}
        </section>
    </main>
    <footer class="site-footer">
        <p>&copy; {dede:php}echo date('Y');{/dede:php} {dede:global.cfg_webname/}</p>
    </footer>
</body>
</html>

推荐资源与进阶

  1. DedeCMS 官方论坛/社区http://bbs.dedecms.com/

    这里可以找到大量现成的模板、插件和技术求助,搜索 "HTML5 模板" 或 "响应式模板" 会有很多发现。

  2. HTML5 语义化参考

  3. CSS 布局教程

  4. 现成的 HTML5 模板框架

    如果你不想从零开始,可以基于一些成熟的 HTML5 前端框架(如 Bootstrap, Tailwind CSS)来制作 DedeCMS 模板,这些框架提供了大量的响应式组件,能极大提高开发效率,网上也有不少基于这些框架的 DedeCMS 模板可供学习和使用。

将 DedeCMS 升级到 HTML5 模板是一个“换汤不换药”的过程,核心在于前端技术的现代化改造,关键步骤如下:

  1. 修改文档类型:从 XHTML 改为 HTML5。
  2. 使用语义化标签:用 <header>, <nav>, <main> 等替换无意义的 <div>
  3. 引入视口标签:为移动端适配做准备。
  4. 编写现代 CSS:使用 Flexbox/Grid 和媒体查询实现响应式布局。
  5. 后台生成更新:让修改生效。

通过以上步骤,你就可以将一个老旧的 DedeCMS 网站改造成一个符合现代标准、美观且对移动端友好的网站。