{dede:list} 是DedeCMS中最核心、最常用的列表标签,用于在页面上循环输出文章列表,比如首页的文章列表、栏目页的文章列表、搜索结果页等。

{dede:list} 的基本语法
{dede:list} 标签通常与 {/dede:list} 成对出现,它们之间的所有代码都会被循环执行,直到调用完所有符合条件的文章。
基本结构:
{dede:list pagesize='10'}
<li>
<a href='[field:arcurl/]'>[field:title/]</a>
<span>[field:pubdate function="MyDate('Y-m-d',@me)"/]</span>
</li>
{/dede:list}
参数说明:
pagesize='数字': 这是最重要的参数,它用来指定每页显示的文章数量。pagesize='10'表示每页显示10篇文章。col='数字': 指定每行显示几条记录。col='2'会将列表输出为两列,这个参数在现代响应式布局中较少使用,因为通常会用CSS Grid或Flexbox来控制布局。titlelen='数字': 标题长度,截取文章标题的字数。titlelen='30'表示标题最多显示30个字符(一个汉字算一个字符)。infolen='数字': 内容摘要长度,截取文章摘要(description字段)的字数。orderby='排序字段': 排序方式,按哪个字段进行排序。orderby='sortrank': 按文章排序级别(默认,常用)orderby='pubdate': 按发布时间(常用)orderby='hot'或orderby='click': 按点击量orderby='rand': 随机排序
orderway='排序方式': 排序顺序。orderway='desc': 降序(从大到小,如最新发布的文章在前)orderway='asc': 升序(从小到大,如最早发布的在前)- 默认为
desc。
{dede:list} 内部的常用字段
在 {dede:list} ... {/dede:list} 循环体内,使用 [field:字段名/] 来调用文章的各个信息。

常用字段列表:
| 字段名 | 说明 | 示例 |
| :--- | :--- | :--- | | 文章标题 | [field:title/] |
| arcurl | 文章链接 | <a href='[field:arcurl/]'>...</a> |
| pubdate | 发布时间(时间戳格式) | [field:pubdate/] |
| description | | [field:description/] |
| click | 文章点击数 | [field:click/] |
| litpic | 文章缩略图 | <img src='[field:litpic/]' /> |
| typename | 所属栏目名称 | [field:typename/] |
| typeurl | 所属栏目链接 | [field:typeurl/] |
| id | 文章ID | [field:id/] |
高级字段(使用函数处理):
为了更好地显示时间、截取内容等,通常会结合PHP函数来使用。

-
时间格式化:
<!-- 格式为:2025-10-27 10:30:00 --> [field:pubdate function='MyDate("Y-m-d H:i:s",@me)'/] <!-- 格式为:10-27 --> [field:pubdate function='MyDate("m-d",@me)'/] -
标题截取:
<!-- 截取30个字符,并添加... --> [field:title function='cn_substr(@me, 30)'/]
-
内容截取(获取文章前N个字符):
<!-- 获取文章内容的前200个字符作为摘要 --> [field:body function='cn_substr(@me, 200)'/]
首页使用 {dede:list} 的完整示例
假设我们要做一个博客首页,显示文章列表,每页10篇,按发布时间倒序排列。
在后台创建首页模板
登录DedeCMS后台 -> 模板 -> 默认模板管理 -> 选择你的网站模板 -> 点击 index.htm (首页模板) 进行编辑。
编写首页HTML和Dede标签
一个典型的首页布局如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">{dede:global.cfg_webname/}</title>
<link rel="stylesheet" href="/templets/default/style.css">
</head>
<body>
<div class="header">
<h1><a href="/">{dede:global.cfg_webname/}</a></h1>
</div>
<div class="main">
<!-- 左侧主要内容区 - 使用 {dede:list} 调用文章列表 -->
<div class="content">
<h2>最新文章</h2>
{dede:list pagesize='10' orderby='pubdate' orderway='desc'}
<article class="post-item">
<div class="post-thumb">
<a href="[field:arcurl/]">
<img src="[field:litpic/]" alt="[field:title function='html2text(@me)'/]">
</a>
</div>
<div class="post-info">
<h3><a href="[field:arcurl/]">[field:title/]</a></h3>
<div class="post-meta">
<span>发布于:[field:pubdate function='MyDate("Y-m-d",@me)'/]</span>
<span>阅读:[field:click/]</span>
</div>
<p class="post-excerpt">
[field:description function='cn_substr(@me, 150)'/]...
</p>
</div>
</article>
{/dede:list}
<!-- 分页条 -->
<div class="page-nav">
{dede:pagelist listsize='4' listitem='pre,next,end,option,info'/}
</div>
</div>
<!-- 右侧边栏 -->
<div class="sidebar">
{dede:include filename="side.htm"/}
</div>
</div>
<div class="footer">
{dede:include filename="footer.htm"/}
</div>
</body>
</html>
代码解析:
{dede:list pagesize='10' orderby='pubdate' orderway='desc'}: 在首页调用10篇文章,按发布时间倒序排列。[field:litpic/]: 显示文章的缩略图,如果文章没有缩略图,这里可能会显示空白或默认图片。[field:arcurl/]: 生成文章的链接。[field:title/]: 显示文章标题。[field:pubdate function='MyDate("Y-m-d",@me)'/]: 将时间戳格式化为“年-月-日”的格式。- `[field:click/]: 显示文章的点击次数。
[field:description function='cn_substr(@me, 150)'/]: 截取文章摘要的前150个字符。{dede:pagelist ... /}: 这是分页标签,必须和{dede:list}配合使用,才能实现翻页功能。listsize='4': 显示4个页码按钮。listitem='pre,next,end,option,info': 定义显示哪些分页元素,包括:上一页、下一页、末页、下拉跳转页、页码信息。
常见问题与注意事项
-
为什么我的首页没有内容?
- 检查栏目属性:确保你想要在首页显示文章的栏目,其“栏目属性”设置为“首页栏目”,在后台
栏目管理-> 编辑栏目 -> 勾选“栏目列表”。 - 检查文章状态:确保文章已经“审核通过”。
- 检查模板调用:确认
{dede:list}标签没有拼写错误,并且参数正确。
- 检查栏目属性:确保你想要在首页显示文章的栏目,其“栏目属性”设置为“首页栏目”,在后台
-
如何只调用指定栏目的文章?
{dede:list}本身不带栏目筛选功能,如果你想在首页只显示某个栏目(如“技术分享”)的文章,有两种方法:- 方法一(推荐):在后台创建一个“首页栏目”,并将“技术分享”这个栏目移动到“首页栏目”下面,然后在首页模板中使用
{dede:list}即可,它会自动调用所有“首页栏目”下的文章。 - 方法二:使用
{dede:arclist}标签,它可以直接指定typeid。{dede:arclist typeid='1' pagesize='10'}...{/dede:arclist}(typeid='1'是栏目ID)。
- 方法一(推荐):在后台创建一个“首页栏目”,并将“技术分享”这个栏目移动到“首页栏目”下面,然后在首页模板中使用
-
{dede:list}和{dede:arclist}的区别是什么?{dede:list}:- 用途:主要用于列表页和首页。
- 分页:自带分页功能,配合
{dede:pagelist}使用。 - 性能:在数据量大时,分页查询可能会有性能压力。
{dede:arclist}:- 用途:功能更强大的列表调用标签,常用于首页、栏目页、内容页等任何地方调用文章列表。
- 分页:不带分页功能,如果需要分页,需要手动处理或结合其他标签。
- 灵活性:参数更多,可以指定栏目、频道、关键字等,非常灵活。
对于制作首页或需要分页的列表页,{dede:list} 是最直接、最方便的选择,如果只是需要在某个固定位置调用少量文章(如首页推荐、相关文章),{dede:arclist} 会更合适。
