什么是封面模板?
在 DedeCMS 中,内容模型分为“封面模板”、“列表模板”和“内容模板”。

(图片来源网络,侵删)
- 封面模板:一个栏目的“门面”,它通常用于显示该栏目下推荐、热门、头条等文章的摘要、缩略图和链接,一个栏目可以有多个封面模板,实现不同的展示效果。
- 列表模板:显示该栏目下所有文章的列表,通常以“标题+日期+点击+的形式呈现,翻页功能在这里实现。
- 内容模板:单篇文章的详细页面,显示文章的完整内容、图片、附件等。
核心区别:封面模板用于“推荐”和“聚合”内容,而列表模板用于“罗列”所有内容。
如何设置封面模板?
在调用之前,你必须确保你的栏目已经正确地设置了封面模板。
- 登录后台:进入 DedeCMS 后台管理系统。
- 进入栏目管理:在左侧菜单栏找到【核心】 -> 【栏目管理】。
- 选择栏目:点击你需要设置封面模板的栏目名称,进入栏目编辑页面。
- 选择封面模板:
- 在栏目编辑页面,找到“栏目封面模板”这一项。
- 默认情况下,系统会提供一个默认的封面模板(如
default.htm)。 - 你可以在这里选择一个已有的模板,或者点击后面的【浏览】按钮,从
/templets/default/目录(或你自定义的模板目录)中选择一个你制作好的封面模板文件。
- 更新栏目:点击【确定】或【保存】按钮,设置完成。
重要提示:一个栏目必须设置了封面模板,并且该模板文件存在于你的模板目录下,才能正常访问栏目的封面页(http://www.yoursite.com/plus/list.php?tid=1)。
封面模板中常用的调用标签
这是最核心的部分,在封面模板文件(如 cover.htm)中,你需要使用 DedeCMS 的特定标签来调用数据。

(图片来源网络,侵删)
调用栏目基本信息
这些标签用于显示栏目自身的名称、描述等信息。
{dede:field name='typename'/}:栏目名称。{dede:field name='description'/}:栏目描述。{dede:field name='keywords'/}:栏目关键词。
调用栏目下的文章列表
这是封面模板最常用的功能,用于展示文章。
基本语法:
{dede:arclist flag='c' row='10' titlelen='30'}
<li>
<a href="[field:arcurl/]" title="[field:title/]">[field:title/]</a>
<span>[field:pubdate function="MyDate('Y-m-d', @me)"/]</span>
</li>
{/dede:arclist}
{dede:arclist} 标签常用属性说明:

(图片来源网络,侵删)
| 属性名 | 含义 | 示例 |
|---|---|---|
typeid |
指定栏目ID,如果为空,表示当前栏目。 | typeid='1' |
row |
调用文章的数量。 | row='8' (调用8篇文章) |
infolen |
内容摘要长度。 | infolen='100' |
orderby |
排序方式,常用值:click(按点击)、pubdate(按发布日期)、id(按ID)。 |
orderby='click' |
orderway |
排序方向。desc(降序)、asc(升序)。 |
orderway='desc' |
flag |
非常重要! 特殊属性,用于指定文章属性,多个用隔开。 | flag='c' (调用推荐文章), flag='h' (调用头条), flag='a' (调用特荐) |
channelid |
指定模型ID,默认为1(文章模型)。 | channelid='1' |
limit |
起始位置,调用数量,格式为 起始数,数量。 |
limit='0,5' (从第0篇开始,调用5篇) |
[field:功能名/] 常用字段说明:
| 字段名 | 含义 |
|---|---|
[field:title/] |
|
[field:arcurl/] |
文章链接,非常重要! |
[field:pubdate/] |
发布时间戳,需要配合 function 使用。 |
[field:litpic/] |
文章缩略图。 |
[field:description/] |
手动在后台编辑的摘要)。 |
[field:click/] |
文章点击次数。 |
时间格式化示例:
[field:pubdate function="MyDate('Y-m-d H:i:s', @me)"/]
MyDate是 DedeCMS 的日期格式化函数。'Y-m-d H:i:s'是目标格式,Y代表四位年份,m代表月份,d代表日,以此类推。@me代表当前字段的原始值(即时间戳)。
调用特定属性的文章
-
调用推荐文章 (c):
{dede:arclist flag='c' row='5'} <a href="[field:arcurl/]">[field:title/]</a> {/dede:arclist} -
调用头条文章 (h):
{dede:arclist flag='h' row='3'} <a href="[field:arcurl/]">[field:title/]</a> {/dede:arclist} -
调用带缩略图的文章:
{dede:arclist row='6' typeid='1' imgwidth='150' imgheight='100'} <a href="[field:arcurl/]"> <img src="[field:litpic/]" alt="[field:title/]" width="150" height="100"> <span>[field:title/]</span> </a> {/dede:arclist}imgwidth和imgheight用于自动处理缩略图尺寸。
调用子栏目
在封面模板中,也常常需要显示当前栏目的所有子栏目。
{dede:channel type='son' row='8'}
<li>
<a href="[field:typeurl/]">[field:typename/]</a>
</li>
{/dede:channel}
type='son':表示调用子栏目。[field:typeurl/]:子栏目的链接。[field:typename/]:子栏目的名称。
一个完整的封面模板示例
下面是一个简单的两栏式封面模板示例,左侧调用推荐文章,右侧调用子栏目。
文件名:cover.htm
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">{dede:field name='typename'/} - {dede:global.cfg_webname/}</title>
</head>
<body>
<h1>{dede:field name='typename'/}</h1>
<p>{dede:field name='description'/}</p>
<div class="main-content">
<!-- 左侧:推荐文章列表 -->
<div class="left-column">
<h2>推荐文章</h2>
<ul>
{dede:arclist flag='c' row='5' titlelen='40'}
<li>
<a href="[field:arcurl/]" title="[field:title/]" target="_blank">[field:title/]</a>
<span>[field:pubdate function="MyDate('Y-m-d', @me)"/]</span>
</li>
{/dede:arclist}
</ul>
</div>
<!-- 右侧:子栏目列表 -->
<div class="right-column">
<h2>子栏目</h2>
<ul>
{dede:channel type='son' row='10'}
<li>
<a href="[field:typeurl/]">[field:typename/]</a>
</li>
{/dede:channel}
</ul>
</div>
</div>
</body>
</html>
常见问题与技巧
-
为什么我的封面模板不生效?
- 检查文件路径:确保模板文件上传到了正确的目录(通常是
/templets/你的模板名称/)。 - 检查栏目设置:再次确认栏目的“栏目封面模板”选项是否正确选择了你的模板文件。
- 检查标签语法:确保
{dede:...}标签没有拼写错误,{/dede:...}的闭合标签正确。 - 更新缓存:在后台点击【系统】 -> 【一键更新网站】 -> 【更新栏目HTML】和【更新文档HTML】。
- 检查文件路径:确保模板文件上传到了正确的目录(通常是
-
如何调用当前栏目下的所有文章(不分页)?
- 在
{dede:arclist}标签中,将row属性设置为一个足够大的数字,row='10000',这样就能一次性显示所有文章,但要注意文章数量过多时页面会很长,影响加载速度和用户体验。
- 在
-
如何调用顶级栏目?
- 在
{dede:channel}标签中使用type='top'。 - 在
{dede:arclist}标签中,typeid为空,默认就是调用当前栏目,如果你想调用顶级栏目,需要先通过{dede:field name='typeid'/}获取顶级栏目ID,再赋值给typeid。
- 在
希望这份详细的指南能帮助你完全掌握 DedeCMS 封面模板的调用!
