使用 {dede:include} 标签(最常用、最标准)
这是 DedeCMS 官方提供的、用于在模板中包含其他模板文件或 HTML 片段的标准方法,它非常适合引入公共的页面结构,如头部 (header.htm)、底部 (footer.htm)、侧边栏 (sidebar.htm) 等。

(图片来源网络,侵删)
语法:
{dede:include filename='文件路径' ismake='是否为绝对路径'}
参数说明:
filename='文件路径'(必需):- 相对路径: 相对于当前模板目录 (
/templets/default/) 的路径,这是最常用的方式。 - 绝对路径: 以 开头,表示从网站根目录的模板目录开始。
filename='/templets/default/common/header.htm'。
- 相对路径: 相对于当前模板目录 (
ismake='yes'(可选):ismake='yes': 表示filename给出的是一个绝对路径。ismake='no'(默认值): 表示filename给出的是一个相对路径。
示例:
假设你的模板文件结构如下:

(图片来源网络,侵删)
/templets/default/
├── index.htm (首页主模板)
├── header.htm (公共头部)
├── footer.htm (公共底部)
└── article/
└── list_article.htm (文章列表页)
在 index.htm 中引入头部和底部:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">{dede:global.cfg_webname/}</title>
</head>
<body>
<!-- 使用相对路径引入头部 -->
{dede:include filename='header.htm'/}
<div class="main-content">
<!-- 这里是首页的主要内容 -->
<h1>欢迎来到首页</h1>
{dede:arclist titlelen='50' row='5'}
<li><a href="[field:arcurl/]">[field:title/]</a></li>
{/dede:arclist}
</div>
<!-- 使用相对路径引入底部 -->
{dede:include filename='footer.htm'/}
</body>
</html>
在 article/list_article.htm 中引入头部和底部:
{dede:include filename='../header.htm'/}
<!-- 使用 ../ 返回上一级目录,再找到 header.htm -->
<div class="article-list">
<h2>文章列表</h2>
<!-- 这里是文章列表页的内容 -->
{dede:list pagesize='10'}
<li><a href="[field:arcurl/]">[field:title/]</a></li>
{/dede:list}
</div>
{dede:include filename='../footer.htm'/}
使用 {dede:field} 标签调用栏目内容(适用于动态内容)
如果你想在某个位置引入一段动态的、可后台编辑的文字或 HTML,而不是一个固定的文件,可以使用 {dede:field} 标签来调用当前栏目的“栏目内容”。
场景: 每个栏目都有自己的介绍,这个介绍在后台填写,然后在列表页或内容页显示。

(图片来源网络,侵删)
后台操作:
- 进入“核心” -> “栏目管理”。
- 编辑你想要设置的栏目。
- 在栏目基本信息页面,找到“栏目内容”或“描述”字段,填入你想要显示的 HTML 代码或文字。
模板中使用:
在列表页模板 (list_栏目ID.htm) 或内容页模板 (article_article.htm) 中,使用以下标签:
<!-- 调用当前栏目的栏目内容 -->
{dede:field.content/}
<!-- 或者调用栏目的描述(取决于你在后台填写的字段) -->
{dede:field.description/}
这种方式比引入文件更灵活,因为内容可以直接在后台维护,无需修改模板文件。
使用 PHP 原生代码(不推荐,但功能最强大)
在某些特殊情况下,你可能需要引入一个包含复杂 PHP 逻辑的文件,而不仅仅是 HTML 片段,这时,你可以在模板文件中使用 PHP 原生代码。
重要提示:
- 文件后缀必须是
.php,你的主模板文件是index.php。 - 需要开启模板解析 PHP 的功能,在后台“系统” -> “系统基本参数” -> “核心设置”中,找到“模板引擎禁用标签”选项,确保里面没有
php,或者更安全的方式是只允许特定的 PHP 标签。 - 存在安全风险,如果引入的文件不受信任,可能会导致网站被植入恶意代码,请谨慎使用。
语法:
<?php include_once '需要引入的文件路径'; ?>
示例:
假设你有一个 functions.php 文件,里面定义了一些辅助函数。
/templets/default/functions.php
<?php
function myCustomFunction() {
echo "这是一个自定义函数输出的内容";
}
?>
在你的 index.php 模板文件中:
<!DOCTYPE html>
<html>
<head>{dede:global.cfg_webname/}</title>
</head>
<body>
<h1>首页</h1>
<?php include_once 'functions.php'; ?>
<?php myCustomFunction(); ?>
<!-- 其他 DedeCMS 标签正常使用 -->
{dede:arclist row='5'}
<li>[field:title/]</li>
{/dede:arclist}
</body>
</html>
总结与对比
| 方法 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|
{dede:include} |
官方标准、简单、安全、性能好 | 只能引入静态模板文件 | 引入公共页面结构(header, footer, sidebar) |
{dede:field} |
内容动态可管理、灵活 | 需要后台配合,不适合大块 HTML | 引入每个栏目或文章特有的简介、说明 |
PHP include |
功能最强大,可执行任何 PHP 代码 | 有安全风险、需要 .php 文件、降低模板可维护性 |
引入包含复杂逻辑或数据库操作的 PHP 文件(不推荐新手使用) |
对于绝大多数情况,强烈推荐使用方法一 {dede:include}。 它是 DedeCMS 设计初衷中最优雅、最安全的模板复用方式。
