帝国CMS模板制作终极教程
帝国CMS是一款功能强大的国内开源内容管理系统,其模板系统非常灵活,通过标签(函数)调用数据,实现内容的动态展示,本教程将带你一步步从零开始,制作一个完整的帝国CMS模板。

(图片来源网络,侵删)
第一部分:基础概念与准备
在开始之前,我们必须理解几个核心概念。
核心概念
- 模板: 网站的“外观”和“骨架”,由HTML、CSS、JavaScript和帝国CMS的标签(函数)组成,它定义了网站的布局和样式。
- 帝国CMS的“指令”,用于从数据库中调用数据并显示在模板中。
[!--class.name--]用于调用栏目名称。 - 变量: 标签中的特定部分,用于传递参数。
[!--news.url--]中的url就是一个变量。 - 封面页: 频道(栏目)的主页,通常用于展示该栏目下的列表内容或特定介绍。
- 列表页: 展示多个内容标题、摘要等信息的页面,通常用于新闻列表、产品列表等。
- 内容页: 展示单个内容详细信息的页面,如文章详情、产品详情。
- 公共模板: 可被多个页面调用的模板片段,例如页头、页脚、侧边栏等,这是实现代码复用、提高制作效率的关键。
开发环境准备
- 本地服务器: 安装集成环境,如
phpStudy、WampServer或XAMPP,用于在本地运行帝国CMS。 - 代码编辑器: 使用
VS Code、Sublime Text或Dreamweaver等工具来编写和编辑模板文件。 - FTP工具: 如
FileZilla,用于将本地文件上传到服务器。 - 浏览器开发者工具:
F12是你最好的朋友,用于调试HTML、CSS和JavaScript,检查网络请求。
第二部分:模板文件结构
一个标准的帝国CMS模板通常包含以下文件和目录:
e/
├─ templates/ # 模板主目录
│ ├─ default/ # 默认模板文件夹(可以自定义名称)
│ │ ├─ images/ # 存放图片资源
│ │ ├─ style/ # 存放CSS文件
│ │ ├─ js/ # 存放JavaScript文件
│ │ ├─ public/ # 公共模板目录
│ │ │ ├─ header.html # 公共页头模板
│ │ │ ├─ footer.html # 公共页脚模板
│ │ │ └─ ...
│ │ ├─ index.html # 网站首页模板
│ │ ├─ list-1.html # ID为1的栏目列表页模板
│ │ ├─ show-1.html # ID为1的栏目内容页模板
│ │ └─ ...
文件命名规则:
- 首页:
index.html - 列表页:
list-[栏目ID].html(新闻栏目ID为3,则文件为list-3.html) - 内容页:
show-[栏目ID].html(产品栏目ID为5,则文件为show-5.html) - 封面页:
index-[栏目ID].html(关于我们栏目ID为7,则文件为index-7.html)
第三部分:模板制作实战(分步详解)
我们将以制作一个简单的博客首页为例。

(图片来源网络,侵删)
制作公共模板(页头和页脚)
公共模板能让你的所有页面共享同一套头部和底部,修改时只需更新一个文件。
创建页头模板 (public/header.html)
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">[!--pagetitle--]</title> <!-- 动态获取页面标题 -->
<meta name="keywords" content="[!--pagekeywords--]"> <!-- 动态获取页面关键词 -->
<meta name="description" content="[!--pagedescription--]"> <!-- 动态获取页面描述 -->
<link rel="stylesheet" href="[!--news.url--]templates/default/style/css/style.css"> <!-- 引入CSS -->
</head>
<body>
<div class="header">
<div class="logo">
<a href="[!--news.url--]">[!--site.name--]</a> <!-- 网站名称和首页链接 -->
</div>
<nav class="main-nav">
<ul>
<!-- 调用一级栏目列表 -->
[!--empirenews.listtemp--]
<li><a href="[!--class.url--]">[!--class.name--]</a></li>
[!--empirenews.listtemp--]
</ul>
</nav>
</div>
<div class="main-content">
创建页脚模板 (public/footer.html)
</div> <!-- 关闭 main-content -->
<div class="footer">
<p>Copyright © 2025 [!--site.name--] All Rights Reserved.</p>
<p>Powered by <a href="http://www.phome.net">EmpireCMS</a></p>
</div>
<script src="[!--news.url--]templates/default/js/jquery.min.js"></script> <!-- 引入JS -->
</body>
</html>
创建首页 (index.html)
我们将公共模板“组装”起来,并添加首页特有的内容。
[!--temp.public.header--] <!-- 调用公共页头模板 -->
<div class="home-banner">
<!-- 这里可以放一个轮播图,用JS实现 -->
<img src="[!--news.url--]templates/default/images/banner.jpg" alt="网站banner">
</div>
<div class="container">
<div class="main-left">
<h2>最新文章</h2>
<!-- 调用新闻列表 -->
[!--empirenews.listtemp--]
<article class="post-item">
<h3><a href="[!--titleurl--]">[!--title--]</a></h3> <!-- 文章标题和链接 -->
<div class="post-meta">发布时间:[!--newstime--] 作者:[!--writer--]</div> <!-- 发布时间和作者 -->
<p class="post-excerpt">[!--smalltext--]</p> <!-- -->
</article>
[!--empirenews.listtemp--]
<!-- 分页标签 -->
<div class="page">
[!--showpage--]
</div>
</div>
<div class="main-right">
<!-- 调用公共模板,比如侧边栏 -->
[!--temp.public.sidebar--]
</div>
</div>
[!--temp.public.footer--] <!-- 调用公共页脚模板 -->
模板标签解析:
[!--temp.public.header--]: 调用public目录下的header.html模板。[!--news.url--]: 获取网站根目录URL。[!--site.name--]: 获取网站后台设置的网站名称。[!--class.url--]/[!--class.name--]: 调用栏目的URL和名称。[!--empirenews.listtemp--] ... [!--empirenews.listtemp--]: 这是最核心的列表循环标签,所有写在它里面的内容,都会根据后台设置的条件(如栏目、数量、排序等)循环输出。[!--title--]: 调用文章标题。[!--titleurl--]: 调用文章链接。[!--newstime--]: 调用文章发布时间。[!--smalltext--]: 调用文章摘要。[!--showpage--]: 自动生成分页代码。
制作列表页
列表页的制作与首页非常相似,只是调用数据的栏目不同。
假设新闻栏目的ID是 1,那么我们就需要创建 list-1.html 文件。
[!--temp.public.header--]
<div class="container">
<div class="breadcrumb">
<a href="[!--news.url--]">首页</a> > [!--classname--] <!-- 当前栏目名称 -->
</div>
<div class="main-left">
<h2>[!--classname--]</h2>
<!-- 调用指定栏目(ID=1)下的新闻列表 -->
[!--empirenews.listtemp--]
<article class="post-item">
<h3><a href="[!--titleurl--]">[!--title--]</a></h3>
<div class="post-meta">发布时间:[!--newstime--]</div>
<p class="post-excerpt">[!--smalltext--]</p>
</article>
[!--empirenews.listtemp--]
<div class="page">
[!--showpage--]
</div>
</div>
<div class="main-right">
[!--temp.public.sidebar--]
</div>
</div>
[!--temp.public.footer--]
关键区别:
[!--classname--]: 调用当前栏目的名称。- 列表循环标签
[!--empirenews.listtemp--]在后台绑定栏目时,会自动关联到当前栏目,无需手动指定ID。
页
页用于展示文章的完整内容。
假设新闻栏目ID是 1页模板为 show-1.html。
[!--temp.public.header--]
<div class="container">
<div class="breadcrumb">
<a href="[!--news.url--]">首页</a> > <a href="[!--class.url--]">[!--classname--]</a> > [!--title--]
</div>
<div class="article-content">
<h1 class="article-title">[!--title--]</h1>
<div class="article-info">
发布时间:[!--newstime--] 作者:[!--writer--] 来源:[!--source--] 点击:[!--onclick--]
</div>
<div class="article-text">
[!--newstext--] <!-- 这是调用文章正文内容的核心标签 -->
</div>
<!-- 上一篇/下一篇 -->
<div class="nav-next-prev">
<div>上一篇:[!--info.pre--]</div>
<div>下一篇:[!--info.next--]</div>
</div>
<!-- 相关文章 -->
<div class="related-news">
<h3>相关文章</h3>
[!--empirenews.listtemp--]
<li><a href="[!--titleurl--]">[!--title--]</a></li>
[!--empirenews.listtemp--]
</div>
</div>
</div>
[!--temp.public.footer--]
关键标签:
[!--newstext--]: 调用文章正文的核心标签。[!--info.pre--]/[!--info.next--]: 调用上一篇/下一篇文章的标题和链接。[!--onclick--]: 调用文章点击数。
第四部分:常用标签速查表
| 类别 | 说明 | |
|---|---|---|
| 基础信息 | [!--news.url--] |
网站地址 |
[!--site.name--] |
网站名称 | |
[!--pagetitle--] |
当前页面标题 | |
[!--pagekeywords--] |
当前页面关键词 | |
[!--pagedescription--] |
当前页面描述 | |
| 栏目信息 | [!--class.name--] |
栏目名称 |
[!--class.url--] |
栏目链接 | |
[!--classname--] |
当前栏目名称 | |
| 列表/首页 | [!--empirenews.listtemp--] |
列表循环开始 |
[!--title--] |
||
[!--titleurl--] |
标题链接 | |
[!--smalltext--] |
摘要 | |
[--newstime--] |
发布时间 | |
[--writer--] |
作者 | |
[--showpage--] |
分页 | |
[!--info.pre--] |
上一篇 | |
[!--info.next--] |
下一篇 | |
[!--onclick--] |
点击数 |
第五部分:进阶技巧与最佳实践
- 模板缓存: 帝国CMS默认开启模板缓存,修改模板后需要在后台“更新缓存”才能看到效果。
- 使用
[!--temp.pl--]调用公共模板:[!--temp.public.header--]是简写,pl是public的缩写,你也可以直接写[!--temp.公共模板名--]。 - 灵动标签: 除了列表标签,帝国CMS还有更强大的“灵动标签”,可以实现更复杂的数据查询和循环,是进阶必备技能。
- 响应式设计: 在编写CSS时,使用媒体查询(
@media)让你的模板在不同设备(PC、平板、手机)上都有良好的显示效果。 - SEO优化:
- 合理设置每个页面的
title,keywords,description。 - 使用面包屑导航
[!--class.nav--]。 - 为图片添加
alt属性。
- 合理设置每个页面的
- 代码规范: 保持HTML、CSS、JavaScript的代码整洁和注释清晰,方便后期维护。
第六部分:资源与学习
- 官方手册: 帝国CMS自带的官方模板制作手册是最权威的资料,请务必仔细阅读。
- 视频教程: 在B站、腾讯课堂等平台搜索“帝国CMS模板教程”,有大量视频资源可供学习。
- 模板市场: 购买现成的模板进行学习和二次开发,是快速上手的好方法。
- 交流社区: 加入帝国CMS的官方QQ群或论坛,遇到问题可以及时求助。
制作帝国CMS模板的核心思想是 “HTML骨架 + 帝国标签填充”,从制作公共模板开始,然后逐步构建首页、列表页和内容页,熟练掌握常用标签,你就能游刃有余地打造出任何你想要的网站样式,祝你学习顺利!
