dede arclist全局变量如何调用与使用?

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

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

dede arclist 全局变量
(图片来源网络,侵删)

核心概念:[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 的循环,依次输出每篇文章的链接和标题。


常用全局变量列表

以下是最常用的一些全局变量,并附有说明和示例。

dede 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 示例:

  1. 日期格式化

    dede arclist 全局变量
    (图片来源网络,侵删)
    • 需求:将时间戳 2025-10-27 10:30:00 格式化为 2025-10-27
    • 代码
      [field:pubdate function='MyDate("Y-m-d", @me)'/]
    • 说明MyDate 是 DedeCMS 内置的日期格式化函数。
  2. 截取字符串

    • 需求的前 20 个字符。
    • 代码
      [field:title function='cn_substr(@me, 20)'/]
    • 说明cn_substr 是 DedeCMS 内置的字符串截取函数,可以防止中文乱码。
  3. 去除 HTML 标签

    • 需求:获取文章摘要,并去除其中的 HTML 标签,然后截取 100 个字符。
    • 代码
      [field:description function='strip_tags(cn_substr(@me, 100))'/]
    • 说明strip_tags 是 PHP 内置函数,用于去除 HTML 和 PHP 标签。
  4. 自定义函数(最强大)

    • 需求:根据文章 ID 获取一个自定义字段,price(价格)。
    • 步骤
      1. /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];
        }
      2. 在模板中使用 function 调用:
        [field:id function='getArcFieldValue(@me, "price")'/]

完整示例:一个常见的文章列表

下面是一个结合了多种变量的完整 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 系统中,通过修改模板并刷新页面来观察每个变量的输出效果。
-- 展开阅读全文 --
头像
织梦marquee在IE中如何实现换行?
« 上一篇 今天
dede tagindex数据库结构及字段说明?
下一篇 » 今天

相关文章

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

目录[+]