arclist 是 DedeCMS 最核心、最常用的列表调用标签,用于在首页、列表页等地方调用文章、图集等内容,它的强大之处在于,不仅能调用数据,还能在循环内部通过一系列全局变量来获取当前文章的详细信息。

(图片来源网络,侵删)
核心概念:[field:xxx /] 语法
在 arclist 标签内部,所有用于获取当前条目(比如一篇文章)信息的变量都使用 [field:变量名 /] 这个格式。
示例:
{dede:arclist titlelen='30' row='5'}
<li>
<a href="[field:arcurl /]">[field:title /]</a>
<span>[field:pubdate function='MyDate("Y-m-d", @me)'/]</span>
</li>
{/dede:arclist}
在这个例子中,[field:arcurl /] 和 [field:title /] arclist 的全局变量,它们会随着 arclist 的循环,依次输出每篇文章的链接和标题。
常用全局变量列表
以下是最常用的一些全局变量,并附有说明和示例。

(图片来源网络,侵删)
基础信息变量
| 变量名 | 说明 | 示例 |
|---|---|---|
[field:id /] |
文章的唯一 ID 号 | 用于 JS 调用或特定链接生成 |
[field:title /] |
[field:title /] |
|
[field:arcurl /] |
文章的完整链接地址 | 最常用,用于制作文章的 <a> 链接 |
[field:shorttitle /] |
文章的简略标题 | 如果后台设置了简略标题则优先显示,否则显示完整标题 |
[field:litpic /] |
文章的缩略图路径 | 最常用,用于调用文章的配图 |
[field:pubdate /] |
文章的发布时间,格式为时间戳 | [field:pubdate function='MyDate("Y-m-d", @me)'/] |
[field:description /] |
文章的摘要信息 | 通常用于列表页的简介显示 |
[field:writer /] |
文章的作者 | [field:writer /] |
[field:source /] |
文章的来源 | [field:source /] |
[field:click /] |
文章的点击量 | [field:click /] |
[field:goodpost /] |
文章的好评数 | [field:goodpost /] |
[field:badpost /] |
文章的差评数 | [field:badpost /] |
高级功能变量
| 变量名 | 说明 | 示例 |
|---|---|---|
[field:typelink /] |
文章所属栏目的链接 | <a href="[field:typelink /]">[field:typename /]</a> |
[field:typename /] |
文章所属栏目的名称 | [field:typename /] |
[field:textlink /] |
自动生成 <a> 标签的文本链接 |
[field:textlink /] 等同于 <a href="[field:arcurl /]">[field:title /]</a> |
[field:image /] |
自动生成 <img> 标签的缩略图 |
[field:image /] 等同于 <img src="[field:litpic /]" alt="[field:title /]" /> |
[field:info /] |
获取文章正文内容 | 需配合 function 使用,例如截取正文:[field:info function='cn_substr(@me, 100)'/] |
[field:keywords /] |
文章的关键词 | [field:keywords /] |
[field:templeturl /] |
文章自定义模板的 URL | 较少使用 |
[field:array /] |
将当前文章的所有信息以数组形式输出 | 高级用法,常用于二次开发或结合PHP代码使用 |
变量的高级用法:function 修饰符
很多时候,[field:xxx /] 返回的原始数据并不能直接满足需求,这时就需要使用 function 修饰符来对数据进行二次处理。
语法格式:
[field:变量名 function='自定义函数名(@me)' /]
@me 代表变量 field:变量名 的原始值。
常用 function 示例:
-
日期格式化
(图片来源网络,侵删)- 需求:将时间戳
2025-10-27 10:30:00格式化为2025-10-27。 - 代码:
[field:pubdate function='MyDate("Y-m-d", @me)'/] - 说明:
MyDate是 DedeCMS 内置的日期格式化函数。
- 需求:将时间戳
-
截取字符串
- 需求的前 20 个字符。
- 代码:
[field:title function='cn_substr(@me, 20)'/]
- 说明:
cn_substr是 DedeCMS 内置的字符串截取函数,可以防止中文乱码。
-
去除 HTML 标签
- 需求:获取文章摘要,并去除其中的 HTML 标签,然后截取 100 个字符。
- 代码:
[field:description function='strip_tags(cn_substr(@me, 100))'/]
- 说明:
strip_tags是 PHP 内置函数,用于去除 HTML 和 PHP 标签。
-
自定义函数(最强大)
- 需求:根据文章 ID 获取一个自定义字段,
price(价格)。 - 步骤:
- 在
/include/common.func.php文件中(或其他自定义函数文件)添加一个函数:// 根据文章ID获取自定义字段值 function getArcFieldValue($aid, $field) { global $dsql; $row = $dsql->GetOne("SELECT {$field} FROM `dede_archives` WHERE id = {$aid}"); return $row[$field]; } - 在模板中使用
function调用:[field:id function='getArcFieldValue(@me, "price")'/]
- 在
- 需求:根据文章 ID 获取一个自定义字段,
完整示例:一个常见的文章列表
下面是一个结合了多种变量的完整 arclist 列表示例,非常常见于网站首页。
{dede:arclist titlelen='40' row='6' typeid='1,2,3' orderby='pubdate'}
<div class="news-item">
<div class="news-thumb">
<a href="[field:arcurl /]" title="[field:title /]">
<!-- 调用缩略图,如果缩略图不存在则使用默认图片 -->
[field:litpic runphp='yes']
if(@me == '') @me = '/images/default.jpg';
else @me = '<img src="' . @me . '" alt="' . @me . '" />';
[/field:litpic]
</a>
</div>
<div class="news-info">
<h3><a href="[field:arcurl /]" title="[field:title /]">[field:title /]</a></h3>
<p class="summary">
<!-- 调用摘要,并去除HTML标签,截取100字 -->
[field:description function='strip_tags(cn_substr(@me, 100))'/]...
</p>
<div class="news-meta">
<span class="date">[field:pubdate function='MyDate("Y-m-d", @me)'/]</span>
<span class="category">分类:<a href="[field:typelink /]">[field:typename /]</a></span>
</div>
</div>
</div>
{/dede:arclist}
- 核心:
arclist的全局变量通过[field:xxx /]语法在循环内部使用。 - 基础:掌握
id,title,arcurl,litpic,description,pubdate等基础变量是第一步。 - 进阶:熟练使用
function修饰符来格式化日期、截取字符串、调用自定义函数等,能让你的模板功能变得非常强大。 - 实践:最好的学习方式就是在你自己的 DedeCMS 系统中,通过修改模板并刷新页面来观察每个变量的输出效果。
