dede arclist自定义字段怎么用?

99ANYc3cd6
预计阅读时长 13 分钟
位置: 首页 DEDE建站 正文

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

dede arclist自定义字段
(图片来源网络,侵删)

整个过程可以分为以下几个步骤:

  1. 添加自定义字段:在后台为相应的模型(如文章模型)添加你需要的字段。
  2. 修改模板文件:在需要显示该字段的模板文件(通常是列表页 list_*.htm 或首页 index.htm)中使用 arclist 标签进行调用。
  3. (可选)修改字段内容处理函数:如果需要对字段内容进行特殊处理(如截取、过滤等),可以修改 php 文件。

第一步:添加自定义字段

假设我们要在文章列表页,除了显示标题和摘要外,还想额外显示每篇文章的 “作者简介”

  1. 登录 DedeCMS 后台
  2. 进入 [核心] -> [内容模型管理]
  3. 找到并点击你正在使用的模型,通常是 “普通文章”,然后点击后面的 [字段管理]
  4. 在字段管理页面,点击 [添加新字段]
  5. 填写字段信息:
    • 字段名称: author_intro (建议使用英文或拼音,不能使用中文)
    • 字段别名: 作者简介 (这个是后台显示用的,可以写中文)
    • 字段类型: 多行文本 (因为简介内容可能较长)
    • 字段长度: 255 (根据你的需求设定)
    • 默认值: 留空
    • 字段提示: 留空或填写提示信息
    • 是否为空: 是
    • 是否在发布内容时使用: 是 (这样你在后台发布文章时就能填写这个字段了)
  6. 点击 [保存],你的自定义字段 author_intro 就添加成功了。

去后台发布一篇测试文章,在“作者简介”字段里填写一些内容。


第二步:在模板中使用 arclist 调用

我们要在首页或列表页模板中调用这个 author_intro 字段。

dede arclist自定义字段
(图片来源网络,侵删)

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自定义字段
(图片来源网络,侵删)
{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 会自动获取当前文章的这个字段内容并显示出来。
  • 你可以给它加上 classid(如 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/] 显示为空,请检查以下几点:

  1. 字段名称拼写错误[field:author_intro/] 中的 author_intro 必须和你在后台添加的“字段名称”完全一致,区分大小写。
  2. 字段未添加到模型:确认该字段已经成功添加到了你当前使用的文章模型中。
  3. 文章中未填写内容:去后台检查一下,你调用的那篇文章,该自定义字段是否填写了内容。
  4. 缓存问题:有时候后台修改了字段,但前台模板有缓存,可以尝试在后台 [系统] -> [一键更新网站] -> 更新所有栏目、文档和HTML,或者直接清空浏览器缓存,按 Ctrl + F5 强制刷新页面。
  5. 字段权限问题:确保该字段对所有用户组可见或在后台发布时可用。

调用 arclist 自定义字段的流程非常清晰:

后台添加字段 -> 前台模板用 [field:字段名/] 调用 -> 必要时用 function 进行处理。

掌握了这个核心方法,你就可以在 DedeCMS 中实现非常灵活和个性化的内容展示了。

-- 展开阅读全文 --
头像
ANSI C C语言入门PDF哪里找?
« 上一篇 2025-12-19
dede模板文件不存在,如何解析文档?
下一篇 » 2025-12-19

相关文章

取消
微信二维码
支付宝二维码

目录[+]