arclist 是 DedeCMS 最常用、最核心的列表调用标签,功能非常强大,它不仅可以调用默认的字段(如标题、链接、缩略图等),也可以灵活地调用你在后台添加的任何自定义字段。

整个过程可以分为以下几个步骤:
- 添加自定义字段:在后台为相应的模型(如文章模型)添加你需要的字段。
- 修改模板文件:在需要显示该字段的模板文件(通常是列表页
list_*.htm或首页index.htm)中使用arclist标签进行调用。 - (可选)修改字段内容处理函数:如果需要对字段内容进行特殊处理(如截取、过滤等),可以修改
php文件。
第一步:添加自定义字段
假设我们要在文章列表页,除了显示标题和摘要外,还想额外显示每篇文章的 “作者简介”。
- 登录 DedeCMS 后台。
- 进入 [核心] -> [内容模型管理]。
- 找到并点击你正在使用的模型,通常是 “普通文章”,然后点击后面的 [字段管理]。
- 在字段管理页面,点击 [添加新字段]。
- 填写字段信息:
- 字段名称:
author_intro(建议使用英文或拼音,不能使用中文) - 字段别名:
作者简介(这个是后台显示用的,可以写中文) - 字段类型:
多行文本(因为简介内容可能较长) - 字段长度:
255(根据你的需求设定) - 默认值: 留空
- 字段提示: 留空或填写提示信息
- 是否为空: 是
- 是否在发布内容时使用: 是 (这样你在后台发布文章时就能填写这个字段了)
- 字段名称:
- 点击 [保存],你的自定义字段
author_intro就添加成功了。
去后台发布一篇测试文章,在“作者简介”字段里填写一些内容。
第二步:在模板中使用 arclist 调用
我们要在首页或列表页模板中调用这个 author_intro 字段。

arclist 调用自定义字段的基本语法是:[field:自定义字段名 /]
假设你的首页模板是 index.htm,你想在文章列表里显示作者简介。
示例:在首页调用
打开 /templets/default/index.htm 文件,找到 arclist 标签的位置,它可能长这样:
{dede:arclist row='10' titlelen='48'}
<li>
<a href="[field:arcurl/]">[field:title/]</a>
<span>[field:pubdate function='MyDate('m-d',@me)'/]</span>
</li>
{/dede:arclist}
我们想在标题下面显示作者简介,修改如下:

{dede:arclist row='10' titlelen='48'}
<li>
<a href="[field:arcurl/]">[field:title/]</a>
<!-- 调用自定义字段 author_intro -->
<p class="author-intro">[field:author_intro/]</p>
<span>[field:pubdate function='MyDate('m-d',@me)'/]</span>
</li>
{/dede:arclist}
代码解释:
[field:author_intro/]:这就是调用我们刚才创建的自定义字段author_intro的核心代码,DedeCMS 会自动获取当前文章的这个字段内容并显示出来。- 你可以给它加上
class或id(如class="author-intro"),方便在 CSS 中进行样式美化。
示例:在列表页调用
列表页的调用方式和首页完全一样,打开 /templets/default/list_*.htm 文件,找到 arclist 标签,用同样的方式添加 [field:author_intro/] 即可。
第三步:高级用法与常见问题
调用单选/多选/枚举类型字段
如果你的自定义字段是 单选按钮、多选框 或 下拉菜单(在DedeCMS中统称为“枚举”类型),调用方式会稍有不同。
假设你添加了一个字段 source (来源),选项是“原创”、“转载”、“编译”。
- 直接调用:
[field:source/]会直接输出你选择的值,转载”。 - 调用选项的值:如果你想调用选项的
value值(original,reprint),你需要使用function来处理,但这通常需要你在添加字段时就规划好。
进行处理(使用 function)
arclist 的 [field:xxx/] 支持使用 function 对内容进行处理,语法为:[field:xxx function='处理函数(@me)'/]
-
截取字符串:如果作者简介太长,我们想只显示前50个字符。
[field:author_intro function='cn_substr(@me, 50)'/]
cn_substr是 DedeCMS 自带的截取中文字符的函数。 -
过滤HTML标签:如果简介里可能包含
<p>、<span>等标签,你想纯文本显示。[field:author_intro function='htmlspecialchars(@me)'/]
htmlspecialchars会将HTML标签转换为实体字符,从而被当做普通文本显示。 -
自定义处理函数:如果系统自带的函数不够用,你可以在
/include/helpers/目录下创建一个自定义的extend.helper.php文件,在里面写你自己的函数,然后在模板里调用。在
extend.helper.php中添加:// 去除首尾空格并添加“简介:”前缀 function formatAuthorIntro($string) { $intro = trim($string); return "简介:" . $intro; }然后在模板中调用:
[field:author_intro function='formatAuthorIntro(@me)'/]
为什么调用不出来?(常见排查)
[field:your_field/] 显示为空,请检查以下几点:
- 字段名称拼写错误:
[field:author_intro/]中的author_intro必须和你在后台添加的“字段名称”完全一致,区分大小写。 - 字段未添加到模型:确认该字段已经成功添加到了你当前使用的文章模型中。
- 文章中未填写内容:去后台检查一下,你调用的那篇文章,该自定义字段是否填写了内容。
- 缓存问题:有时候后台修改了字段,但前台模板有缓存,可以尝试在后台 [系统] -> [一键更新网站] -> 更新所有栏目、文档和HTML,或者直接清空浏览器缓存,按
Ctrl + F5强制刷新页面。 - 字段权限问题:确保该字段对所有用户组可见或在后台发布时可用。
调用 arclist 自定义字段的流程非常清晰:
后台添加字段 -> 前台模板用 [field:字段名/] 调用 -> 必要时用 function 进行处理。
掌握了这个核心方法,你就可以在 DedeCMS 中实现非常灵活和个性化的内容展示了。
