第一步:理解栏目页的结构
在修改之前,你必须明白 DedeCMS 的栏目页是如何生成的:

- 后台设置:在后台“栏目管理”中,每个栏目都可以选择一个“栏目模板”。
- 模板文件:系统会根据你选择的模板文件,来生成这个栏目的 HTML 页面。
- 模板标签:模板文件里使用了很多 DedeCMS 的专属标签(如
{dede:field}、{dede:list}等),这些标签会从数据库中调用数据并显示出来。
修改栏目页的核心就是:找到并修改对应的模板文件。
第二步:定位并编辑模板文件
这是最关键的一步,你需要找到控制栏目页显示的那个 .htm 文件。
默认模板位置
DedeCMS 的默认模板文件通常存放在以下目录:
/templets/default/
在这个目录下,你会发现很多文件,其中与栏目页相关的主要有:

list_article.htm:这是文章列表栏目页的默认模板,如果你的栏目类型是“文章”,那么它默认就调用这个文件。list_image.htm:这是图片集栏目页的默认模板。list_product.htm:这是产品栏目页的默认模板(如果你的系统有此功能)。
最常见的情况是修改 list_article.htm。
自定义模板位置
如果你在后台设置了自定义模板,或者使用的是其他模板,文件可能在:
/templets/你的模板名称/
如何确认当前栏目使用的模板?
- 登录 DedeCMS 后台。
- 进入【栏目管理】。
- 找到你想要修改的那个栏目,点击【修改】。
- 在修改页面的下方,找到“栏目模板”选项,这里显示的就是当前栏目正在使用的模板文件路径(
templets/default/list_article.htm)。
编辑模板文件
找到文件后,你可以通过以下方式编辑它:
- 直接在服务器上编辑:使用 FTP 工具(如 FileZilla)连接你的服务器,找到上述路径的文件,用代码编辑器(如 VS Code, Sublime Text, Dreamweaver)打开修改。
- 通过后台编辑:在后台【系统】->【模板】->【模板管理】中,找到对应的文件,点击后面的【修改】按钮,可以直接在后台进行编辑。
第三步:常用修改操作详解
打开模板文件后,你就可以开始进行各种修改了,下面以最常用的 list_article.htm 为例。
修改页面标题
通常由两部分组成:栏目名称 - 网站名称。
找到类似这样的代码:
{dede:field.title/}:输出当前栏目的名称。{dede:global.cfg_webname/}:输出你在后台设置的网站名称。
你可以直接修改这里的文字,或者调整它们的顺序。
修改栏目名称和描述
区域,通常会有栏目的名称和简介。
<h1>{dede:field.title/}</h1>
<p class="description">{dede:field.description/}</p>
{dede:field.description/}:输出你在后台设置的栏目描述。
你可以修改 <h1> 标签的样式,或者在描述文字前后添加其他 HTML 结构。
修改文章列表的样式
文章列表是由 {dede:list} 这个标签循环生成的,这是修改的重点。
原始代码可能长这样:
<ul class="list">
{dede:list pagesize='10'}
<li>
<span class="title"><a href="[field:arcurl/]">[field:title/]</a></span>
<span class="date">[field:pubdate function="MyDate('Y-m-d',@me)"/]</span>
</li>
{/dede:list}
</ul>
如何修改?
- 修改列表样式:修改
<ul>和<li>的 CSS 类名或 HTML 结构,想改成图文混排,可以改成<div class="article-item">。 - 增加/减少字段:在
<li>内部,你可以添加其他标签来显示更多信息,如:[field:writer/]:作者[field:click/]:点击量[field:description function='cn_substr(@me, 100)'/]:截取前100个字符)[field:litpic/]:文章缩略图
修改后的图文混排示例:
<div class="article-container">
{dede:list pagesize='8'}
<div class="article-item">
<a href="[field:arcurl/]" class="thumb">
<img src="[field:litpic/]" alt="[field:title/]" />
</a>
<div class="info">
<h2><a href="[field:arcurl/]">[field:title/]</a></h2>
<p class="summary">[field:description function='cn_substr(@me, 120)'/]...</p>
<div class="meta">
<span class="date">[field:pubdate function="MyDate('Y-m-d',@me)"/]</span>
<span class="click">阅读([field:click/])</span>
</div>
</div>
</div>
{/dede:list}
</div>
修改完 HTML 后,你还需要在 CSS 文件(通常是 /templets/default/style/dedecms.css)中定义 .article-item, .thumb, .info 等类的样式。
修改分页代码
分页代码通常由 {dede:pagelist listitem='index pre pageno next end'/} 控制。
你可以修改这个标签的属性来改变分页显示的内容,
listsize='5':显示的页码数量。listitem='index,pre,next,end':只显示首页、上一页、下一页、末页。
修改“相关栏目”或“子栏目”模块
如果你的模板里有显示相关栏目或子栏目,它们通常是这样的代码:
{dede:channel type='sun' typeid=''}
<a href="[field:typeurl/]">[field:typename/]</a>
{/dede:channel}
你可以修改 <a> 标签的样式,或者用 <ul> 和 <li> 把它们包裹起来,方便用 CSS 美化。
第四步:刷新和生成
非常重要! 修改完模板文件后,你需要让 DedeCMS 重新生成页面,否则你将看不到效果。
-
生成栏目页面:
- 在后台,进入【生成】->【更新栏目HTML】。
- 你可以选择“更新所有栏目页”或只更新你修改的那个栏目。
-
生成文章列表页:
如果你的文章列表样式也变了,可能需要进入【生成】->【更新文档HTML】->【选择列表页生成】。
-
前台预览:
- 清除浏览器缓存(按
Ctrl + F5强制刷新),然后访问你的栏目页,查看修改效果。
- 清除浏览器缓存(按
常见问题与技巧
Q1: 为什么我修改了模板,前台页面没变化?
A1: 最常见的原因是没有生成栏目页,请务必执行第三步中的“刷新和生成”操作,检查你修改的模板文件路径是否正确,是否是当前栏目正在使用的那一个。
Q2: 我想给不同栏目使用不同的样式怎么办?
A2: 不要在默认模板里写死样式,你可以:
- 方法一(推荐):为不同栏目创建不同的模板文件(如
list_article_news.htm,list_article_about.htm),然后在后台“栏目管理”中为不同栏目指定不同的模板。 - 方法二:在模板文件中判断当前栏目ID,然后给最外层的
<div>或<body>添加不同的类名。<body class="channel-{dede:field.typeid/}"> <!-- 内容 --> </body>然后在 CSS 中针对不同 ID 进行样式定义。
Q3: 我想调用自定义字段怎么办?
A3: 如果你在后台“内容模型管理”中为文章模型添加了自定义字段(如 video_url),在模板中调用它非常简单:
{dede:field.video_url/}
如果需要判断字段是否存在或为空,可以使用 修改 DedeCMS 栏目页的流程可以概括为: 希望这份详细的指南能帮助你成功修改 DedeCMS 的栏目页!if
{dede:field.video_url runphp='yes'}
if(@me != '') {
@me = "<div class='video'><iframe src='".@me."'></iframe></div>";
} else {
@me = '';
}
{/dede:field.video_url}
list_xxx.htm)。
