这个模板文件主要用于控制栏目(频道)列表页的显示样式,包括页面的 HTML 结构、CSS 样式、JavaScript 脚本以及如何调用该栏目下的文章列表。

(图片来源网络,侵删)
核心概念
-
模板文件位置: 栏目头部模板文件位于你的 DedeCMS 安装目录下的
/templets/文件夹内,具体文件名取决于你当前使用的模板风格。- 默认路径:
/templets/default/ - 文件名:通常是
list_栏目ID.htm或者list_default.htm。list_栏目ID.htm:如果你为某个特定的栏目设置了独立的模板,DedeCMS 会优先调用这个文件。list_default.htm:如果某个栏目没有指定独立模板,那么系统会默认调用这个通用模板。
- 默认路径:
-
模板引擎: DedeCMS 使用自己的模板引擎,通过特定的标签(如
{dede:...})来获取数据库内容并动态生成 HTML 页面。
模板文件基本结构
一个典型的栏目头部模板文件结构如下,我们将其分为几个关键部分来讲解:
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">{dede:field.title/}_{dede:global.cfg_webname/}</title>
<meta name="keywords" content="{dede:field name='keywords'/}">
<meta name="description" content="{dede:field name='description'/}">
<!-- 引入CSS文件 -->
<link rel="stylesheet" href="{dede:global.cfg_cmsurl/}/templets/{dede:global.cfg_templets_skin/}/css/style.css">
</head>
<body>
<!-- 1. 网站头部 -->
{dede:include filename="head.htm"/}
<!-- 2. 核心内容区 -->
<div class="main-container">
<!-- 2.1 左侧内容区 (文章列表) -->
<div class="content-wrap">
<!-- 2.1.1 当前栏目信息 -->
<div class="channel-nav">
<h1>{dede:field.typename/}</h1>
<p>{dede:field.description/}</p>
</div>
<!-- 2.1.2 文章列表循环开始 -->
{dede:list pagesize='10'}
<article class="post-item">
<h2><a href="[field:arcurl/]">[field:title/]</a></h2>
<div class="post-meta">
<span>发布时间:[field:pubdate function="MyDate('Y-m-d H:i',@me)"/]</span>
<span>作者:[field:author/]</span>
<span>浏览:[field:click/]</span>
</div>
<div class="post-content">
[field:description function='cn_substr(@me, 200)'/]...
</div>
</article>
{/dede:list}
<!-- 2.1.3 文章分页 -->
<div class="pagination">
{dede:pagelist listsize='5' itempage='2'/}
</div>
</div>
<!-- 2.2 右侧边栏 -->
<div class="sidebar">
{dede:include filename="side.htm"/}
</div>
</div>
<!-- 3. 网页底部 -->
{dede:include filename="footer.htm"/}
<!-- 引入JS文件 -->
<script src="{dede:global.cfg_cmsurl/}/templets/{dede:global.cfg_templets_skin/}/js/jquery.min.js"></script>
</body>
</html>
核心标签详解
<head> 标签中的 SEO 信息
这部分用于设置页面的标题、关键词和描述,对 SEO 非常重要。

(图片来源网络,侵删)
{dede:field.title/}:获取当前栏目的名称。{dede:global.cfg_webname/}:获取网站后台设置的网站名称。{dede:field name='keywords'/}:获取当前栏目在后台设置的关键词。{dede:field name='description'/}:获取当前栏目在后台设置的描述。
栏目信息调用
这部分用于显示当前栏目的名称和简介。
{dede:field.typename/}:显示当前栏目的名称。{dede:field.description/}:显示当前栏目的描述。
文章列表循环 ({dede:list})
这是整个模板的核心,它通过一个循环来输出当前栏目下的文章列表。
- 标签格式:
{dede:list pagesize='10'}...{/dede:list} - 常用属性:
pagesize='10':设置每页显示的文章数量,你可以在后台“栏目管理”中为每个栏目单独设置,也可以在这里覆盖。
- 内部常用字段(用
[field:字段名/]调用):[field:title/]。[field:arcurl/]:文章链接(URL)。[field:pubdate/]:文章发布时间,通常会配合function进行格式化,[field:pubdate function="MyDate('Y-m-d',@me)"/]显示为2025-10-27。[field:description/]:通常会配合function截取指定长度,[field:description function='cn_substr(@me, 200)'/]截取前200个字符。[field:click/]:文章的点击量(浏览次数)。[field:writer/]:文章作者。[field:litpic/]:文章的缩略图。
分页标签 ({dede:pagelist})
当文章数量超过 pagesize 设置的值时,就会出现分页。
- 标签格式:
{dede:pagelist listsize='5' itempage='2'/} - 常用属性:
listsize='5':显示页码的数量(1 2 3 4 5 ...)。itempage='2':显示“上一页”和“下一页”的文本链接。listitem=''/:可以自定义显示哪些分页元素,listitem='index,pre,end,next,pageno'。
模板包含标签 ({dede:include})
用于引入其他模板文件,实现代码复用,方便维护。

(图片来源网络,侵删)
- 标签格式:
{dede:include filename='head.htm'/} - 常见用途:
head.htm:网站头部,通常包含 logo、主导航菜单等。footer.htm:网站底部,通常包含版权信息、备案号等。side.htm:侧边栏,通常包含热门文章、最新评论、栏目导航等。
如何自定义和修改
- 备份原文件:在修改任何模板文件之前,请务必备份原始的
list_default.htm文件,以防修改出错无法恢复。 - 理解 CSS 类名:修改 HTML 结构时,要尽量保持原有的 CSS 类名(如
.content-wrap,.post-item),这样只需修改 CSS 文件就能改变样式,而不用大改模板,如果需要新增类名,请在对应的 CSS 文件中定义样式。 - 修改列表显示:要改变文章列表的显示样式(从单列变为多列,或者添加缩略图),你需要修改
{dede:list}循环内部的 HTML 结构,并可能需要调整 CSS。 - 创建独立模板:如果你希望某个栏目(如“公司新闻”)的列表页样式与其他栏目(如“产品展示”)不同,最好的方法是:
- 复制
list_default.htm文件,重命名为list_栏目ID.htm(如果“公司新闻”的栏目ID是3,就命名为list_3.htm)。 - 然后修改这个新文件,它将只对“公司新闻”这个栏目生效。
- 复制
常见问题与技巧
-
Q: 为什么我修改了模板文件,前台页面没有变化?
- A: 1. 清除缓存:DedeCMS 有强大的缓存机制,请务必进入后台“系统” -> “一键更新站点” -> “更新HTML” -> “更新栏目HTML”,或者直接删除
/data/cache/目录下的缓存文件,2. 检查文件名:确认你修改的是list_栏目ID.htm还是list_default.htm,确保路径正确,3. 检查标签语法:确保{dede:...}标签没有拼写错误。
- A: 1. 清除缓存:DedeCMS 有强大的缓存机制,请务必进入后台“系统” -> “一键更新站点” -> “更新HTML” -> “更新栏目HTML”,或者直接删除
-
Q: 如何在列表页显示文章的缩略图?
- A: 在
{dede:list}循环内部添加<img>标签。{dede:list} <article> <a href="[field:arcurl/]"> <img src="[field:litpic/]" alt="[field:title/]"> </a> <h2><a href="[field:arcurl/]">[field:title/]</a></h2> <p>[field:description function='cn_substr(@me, 150)'/]...</p> </article> {/dede:list}
- A: 在
-
Q: 如何调用子栏目的列表?
- A: 使用
{dede:channel}标签来循环调用子栏目,然后在每个子栏目内部再嵌套一个{dede:list}来调用该子栏目的文章,这通常用于制作一个“大栏目”下包含多个“小栏目”的布局。
- A: 使用
希望这份详细的指南能帮助你完全掌握 DedeCMS 栏目头部模板的制作和修改!
