- 最核心的列表循环标签
- 列表页常用字段标签
- 分页标签
- 完整列表页代码示例
- 高级技巧:列表内容附加表 (自定义字段) 的调用
- 常见问题与注意事项
最核心的列表循环标签
都必须包裹在一个循环标签 {dede:list} 中,这个标签会根据当前栏目的设定,循环输出满足条件的内容条目。

(图片来源网络,侵删)
基本语法:
{dede:list pagesize='10'}
<!-- 循环内部,这里是每条列表内容的HTML结构 -->
<li>
<a href="[field:arcurl/]">[field:title/]</a>
<span>[field:pubdate function="MyDate('Y-m-d',@me)"/]</span>
</li>
{/dede:list}
{dede:list} 标签属性:
pagesize='数字':非常重要! 设置每页显示的文章数量。pagesize='10'表示每页显示10篇文章,len='数字'长度,截取标题的字符数,titlelen='30'` 表示标题最多显示30个字符(一个汉字算一个字符)。infolen='数字'简介长度,截取description字段的字符数。orderway='asc/desc':排序方式。desc为降序(默认,最新的在前),asc为升序(最旧的在前)。typeid='数字':指定栏目ID,如果想在非列表页(如首页)调用某个栏目的列表,可以使用此属性。typeid='1'。
列表页常用字段标签
在 {dede:list} 循环内部,使用 [field:字段名/] 来调用当前文章的各个字段。
最常用的字段标签:

(图片来源网络,侵删)
| 说明 | 示例 | |
|---|---|---|
[field:title/] |
<a href="[field:arcurl/]">[field:title/]</a> |
|
[field:arcurl/] |
文章链接 | <a href="[field:arcurl/]">阅读全文</a> |
[field:pubdate/] |
发布日期(时间戳格式) | [field:pubdate/] (通常需要格式化) |
[field:description/] |
简介 | [field:description/] (通常需要截取) |
[field:litpic/] |
文章缩略图 | <img src="[field:litpic/]" alt="[field:title/]"> |
[field:click/] |
文章点击量 | <span>点击:[field:click/]</span> |
[field:source/] |
文章来源 | [field:source/] |
[field:writer/] |
文章作者 | [field:writer/] |
常用函数修饰(非常重要!):
DedeCMS 标签支持使用函数来处理字段内容,通过 function='函数名' 来调用。
- 日期格式化:
MyDate('格式', @me)@me代表当前字段的原始值。- 示例:
[field:pubdate function="MyDate('Y-m-d H:i',@me)"/]输出2025-10-27 15:30
- 字符截取:
cn_substr('字符串', 长度)- 示例:
[field:title function="cn_substr(@me, 30)"/]截取标题前30个字符。 - 示例:
[field:description function="cn_substr(@me, 100)"/]截取摘要前100个字符。
- 示例:
- 去除 HTML 标签:
Html2Text(@me)- 在截取摘要前,最好先去除HTML标签,避免样式错乱。
- 示例:
[field:description function="cn_substr(Html2Text(@me), 100)"/]
分页标签
当文章数量超过 pagesize 设定的值时,就需要分页标签 {dede:pagelist/}。
基本语法:

(图片来源网络,侵删)
<div class="dede_pages">
<ul>
{dede:pagelist listsize='4' listitem='info,index,end,pre,next,pageno'}
</ul>
</div>
{dede:pagelist} 标签属性:
listsize='数字':显示的页码按钮数量。listsize='4'会显示... 2 3 4 5 6 ...这样的效果。listitem='...':定义分页栏显示的项目,用逗号隔开。info: 显示 "共X页,Y条记录"index: 显示首页pre: 显示上一页next: 显示下一页pageno: 显示页码end: 显示尾页option: 显示下拉跳转框
完整列表页代码示例
这是一个标准的列表页 list_article.htm 模板文件,包含了栏目名称、列表循环和分页。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">{dede:field.title/} - {dede:global.cfg_webname/}</title>
<meta name="description" content="{dede:field.description function='html2text(@me)'/}" />
<meta name="keywords" content="{dede:field.keywords/}" />
</head>
<body>
<h1>{dede:field.title/}</h1>
<p>当前位置:{dede:field.position/}</p>
<div class="list">
<!--
pagesize='10' 每页显示10条
titlelen='40' 标题最多40个字符
orderby='pubdate' 按发布日期排序
-->
{dede:list pagesize='10' titlelen='40' orderby='pubdate'}
<div class="list-item">
<!-- 如果有缩略图则显示,否则显示默认图或文字 -->
[field:litpic runphp='yes']
if(@me == '') @me = '<div class="no-pic">暂无图片</div>';
else @me = '<a href="[field:arcurl/]"><img src="[field:litpic/]" alt="[field:title/]"></a>';
[/field:litpic]
<div class="item-info">
<h2><a href="[field:arcurl/]" title="[field:title/]">[field:title/]</a></h2>
<p class="intro">
<!-- 先去除HTML标签,再截取100个字符作为摘要 -->
[field:description function='cn_substr(Html2Text(@me), 100)'/]...
</p>
<div class="item-meta">
<span>发布时间:[field:pubdate function="MyDate('Y-m-d',@me)"]</span>
<span>浏览:[field:click/]</span>
</div>
</div>
</div>
{/dede:list}
</div>
<!-- 分页 -->
<div class="dede_pages">
<ul>
{dede:pagelist listsize='4' listitem='info,index,end,pre,next,pageno'}
</ul>
</div>
</body>
</html>
高级技巧:列表内容附加表 (自定义字段) 的调用
如果你的文章模型中添加了“自定义字段”(price, author_intro 等),并且这些字段在“列表内容附加表”中,调用方式会有所不同。
调用方法:
在 {dede:list} 循环内,使用 [field:自定义字段名/] 即可。
示例:
假设你在文章模型中添加了一个自定义字段 book_author (作者)。
{dede:list pagesize='10'}
<li>
<a href="[field:arcurl/]">[field:title/]</a>
<span>作者:[field:book_author/]</span> <!-- 直接调用自定义字段 -->
<span>价格:[field:price/]</span> <!-- 调用另一个自定义字段 -->
</li>
{/dede:list}
注意事项:
- 附加表设置:在后台“内容模型管理”中,确保你的模型已经勾选了“列表内容附加表”。
- 字段同步:添加或修改自定义字段后,需要到“数据库修复”工具中执行“更新数据表字段结构”,确保数据库中存在这些字段。
常见问题与注意事项
-
列表页不显示内容?
- 检查
{dede:list}标签是否正确书写。 - 检查
pagesize是否设置为了0。 - 检查当前栏目下是否有已发布的文章。
- 检查文章是否被归档到了其他栏目。
- 检查
-
[field:pubdate/]显示的是一串数字?- 这是因为
pubdate字段存储的是时间戳,必须使用function="MyDate()"来格式化。 - 错误:
[field:pubdate/] - 正确:
[field:pubdate function="MyDate('Y-m-d',@me)"]
- 这是因为
-
列表页调用的是首页内容?
- 确保你编辑的是正确的模板文件,列表页模板通常是
list_*.htm(如list_article.htm),而不是index.htm(首页模板)。 - 检查后台“栏目管理”中,该栏目是否选择了正确的列表页模板。
- 确保你编辑的是正确的模板文件,列表页模板通常是
-
如何改变排序方式?
- 在
{dede:list}标签中使用orderby和orderway属性。 - 按发布日期降序(最新在前):
{dede:list orderby='pubdate' orderway='desc'} - 按点击量降序(点击最多在前):
{dede:list orderby='click' orderway='desc'} - 按ID升序:
{dede:list orderby='id' orderway='asc'}
- 在
希望这份详细的指南能帮助你完全掌握 DedeCMS 列表页的标签调用!
