dede arclist调用php字段怎么写?

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

{dede:arclist} 是 DedeCMS 最核心、最常用的列表标签,用于在首页、列表页等地方调用文章列表。

dede arclist php调用字段
(图片来源网络,侵删)

基础语法和常用参数

我们来看一下 {dede:arclist} 的基本结构:

{dede:arclist typeid='' row='' col='' titlelen='' infolen='' imgwidth='' imgheight='' listtype='' orderby='' keyword=''}
    <a href='[field:arcurl/]'>[field:title/]</a>
    <p>[field:description function="cn_substr(@me,100)"/]...</p>
    <img src='[field:litpic/]' />
    <span>[field:pubdate function="MyDate('Y-m-d',@me)"/]</span>
{/dede:arclist}

常用参数说明:

参数 说明 示例
typeid 指定栏目ID,调用指定栏目下的文章,多个ID用逗号隔开。 typeid='1,3,5'
row 调用文章数量 row='10' (调用10条)
col 分列显示col='2' 表示每行显示2条。 col='2'
infolen 摘要长度(按字符数)。 infolen='100' (摘要最多显示100个字符)
imgwidth 缩略图宽度 imgwidth='200'
imgheight 缩略图高度 imgheight='150'
orderby 排序方式,常用值:pubdate(发布时间)、click(点击量)、id(文章ID)、sortrank(文章排序级别)。 orderby='click' (按点击量从高到低)
keyword ,调用包含指定关键词的文章。 keyword='DedeCMS'
channelid 指定模型ID,默认为1(文章模型)。 channelid='1'

调用字段详解

字段通过 [field:字段名/] 的形式进行调用,下面我们分类型介绍。

系统默认字段(最常用)

这些是 DedeCMS 文章模型本身就拥有的字段,无需额外配置。

dede arclist php调用字段
(图片来源网络,侵删)
字段标签 说明 示例
[field:id/] 文章的唯一ID。 <span>ID: [field:id/]</span>
[field:title/] <a href="[field:arcurl/]">[field:title/]</a>
[field:arcurl/] 文章的完整链接 <a href="[field:arcurl/]">阅读全文</a>
[field:litpic/] 文章缩略图 <img src="[field:litpic/]" alt="[field:title/]">
[field:pubdate/] 文章发布的时间戳(Unix时间戳)。 <span>[field:pubdate/]</span>
[field:description/] 简介 <p>[field:description/]</p>
[field:writer/] 文章作者。 <span>作者:[field:writer/]</span>
[field:source/] 文章来源。 <span>来源:[field:source/]</span>
[field:click/] 文章的点击量。 <span>点击:[field:click/]</span>
[field:typeid/] 文章所在栏目的ID。 <span>栏目ID:[field:typeid/]</span>

字段格式化(使用 function)

很多时候,我们需要对字段进行格式化处理,这时就需要使用 function 属性。

  • 日期格式化: pubdate 默认是时间戳,我们需要将其格式化为易读的日期。

    <!-- 格式:年-月-日 时:分 -->
    [field:pubdate function='MyDate("Y-m-d H:i",@me)'/]
    <!-- 格式:年/月/日 -->
    [field:pubdate function='MyDate("Y/m/d",@me)'/]
  • 字符串截取:description 可能过长,需要截取。

    dede arclist php调用字段
    (图片来源网络,侵删)
    <!-- 标题截取,最多20个字符,并添加... -->
    [field:title function='cn_substr(@me, 20)'/]
    <!-- 摘要截取,最多100个字符 -->
    [field:description function='cn_substr(@me, 100)'/]
  • 去除HTML标签: 有时摘要里会包含 <p> 等标签,需要去除。

    <!-- 先去除HTML标签,再截取100个字符 -->
    [field:description function='cn_html2text(@me)'/]

自定义字段(高级用法)

当默认字段不够用时,我们可以在后台添加自定义字段,调用自定义字段是 DedeCMS 强大的体现。

步骤 1:在后台添加自定义字段

  1. 登录 DedeCMS 后台。
  2. 进入【核心】 -> 【内容模型管理】 -> 选择你的文章模型(通常是“普通文章”)-> 【字段管理】。
  3. 点击【添加新字段】。
  4. 填写字段信息:
    • 字段名:英文,如 price, author_intro
    • 字段别名:中文,如“价格”、“作者简介”。
    • 字段类型:根据需要选择,如“单行文本”、“多行文本”、“编辑器”等。
  5. 保存。

步骤 2:在文章中填写数据

发布或编辑文章时,你会在编辑界面看到新添加的字段,并填入相应数据。

步骤 3:在模板中调用

调用自定义字段有两种方式:

直接调用(适用于单行文本、数字等)

直接使用 [field:字段名/] 即可。

假设你添加了一个名为 price 的字段:

<div class="price">价格:[field:price/] 元</div>

使用 array 方式调用(适用于多行文本、编辑器等)

如果自定义字段类型是“多行文本”或“编辑器”,直接调用可能会输出 HTML 标签,使用 array 方式可以更好地控制输出。

语法:

{dede:arclist ...}
    [field:自定义字段名 function='html2text(@me)'/]
{/dede:arclist}

或者更常见的 array 写法(推荐):

{dede:arclist ...}
    [field:自定义字段名/]
{/dede:arclist}

注意:对于编辑器类型字段,直接调用 [field:字段名/] 会输出完整的 HTML 代码,如果你只想显示纯文本,需要配合 function='html2text'

示例: 假设你添加了一个名为 author_intro 的“多行文本”字段。

<!-- 直接调用,会保留换行和空格 -->
<div class="intro">
    <h4>作者简介:</h4>
    [field:author_intro/]
</div>
<!-- 如果只想显示纯文本,可以处理一下 -->
<div class="intro">
    <h4>作者简介:</h4>
    [field:author_intro function='htmlspecialchars(cn_substr(@me, 200))'/]
</div>

特殊字段调用

  • 调用栏目名称和链接

    这不是文章的字段,但经常和 arclist 一起使用。

    {dede:arclist typeid='1' row='5'}
        <p>栏目名:<a href="[field:typeurl/]">[field:typename/]</a></p>
        <p>文章:<a href="[field:arcurl/]">[field:title/]</a></p>
    {/dede:arclist}
    • [field:typename/]:当前文章所属的栏目名称。
    • [field:typeurl/]:当前文章所属的栏目链接。
  • 调用文章内容(正文)

    arclist 本身不提供 [field:body/] 来调用全文,因为它会严重影响性能,通常的做法是点击标题链接后,在文章详情页 {dede:field.body/} 中调用。

    如果确实需要在列表页截取一部分正文,可以使用 array 来指定附加表字段(如果正文在附加表里)。


完整示例

下面是一个常见的文章列表调用示例,包含了标题、缩略图、发布时间和阅读次数。

<!-- 调用栏目ID为1的下的10篇文章,按发布时间倒序排列 -->
{dede:arclist typeid='1' row='10' titlelen='40' infolen='100' imgwidth='120' imgheight='90' orderby='pubdate'}
    <!-- 使用 [field:global.autoindex/] 来实现循环序号 -->
    <div class="article-item [field:global name=autoindex runphp="yes"](@me % 2 == 0) ? 'even' : 'odd';[/field:global]">
        <div class="thumb">
            <a href="[field:arcurl/]" title="[field:title/]">
                <!-- 如果没有缩略图,可以显示一个默认图 -->
                <img src="[field:litpic/]" alt="[field:title/]" onerror="this.src='/images/default.jpg'">
            </a>
        </div>
        <div class="info">
            <h3><a href="[field:arcurl/]" title="[field:title/]">[field:title/]</a></h3>
            <p class="summary">[field:description function='cn_substr(@me, 100)'/]...</p>
            <div class="meta">
                <span class="date">[field:pubdate function='MyDate("Y-m-d",@me)'/]</span>
                <span class="views">阅读:[field:click/]</span>
                <!-- 假设我们有一个自定义字段 'author' -->
                <span class="author">作者:[field:author/]</span>
            </div>
        </div>
    </div>
{/dede:arclist}
  1. 基础调用:掌握 typeid, row, orderby 等常用参数。
  2. 默认字段:熟练使用 [field:title/], [field:arcurl/], [field:litpic/] 等核心字段。
  3. 格式化function='MyDate()' 用于日期,function='cn_substr()' 用于截取字符串。
  4. 自定义字段:这是实现个性化网站的关键,记住在后台添加字段 -> 在文章里填写数据 -> 在模板里用 [field:字段名/] 调用。
  5. 实践:多动手尝试,将不同的参数和字段组合起来,就能实现各种复杂的列表效果。
-- 展开阅读全文 --
头像
dede arclist如何获取实际信息数量?
« 上一篇 12-01
dede调用原图replace lp怎么用?
下一篇 » 12-01

相关文章

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

目录[+]