dede arclist如何调用文章内容?

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

{dede:arclist} 是 DedeCMS 最核心、最常用的列表标签,用于在首页、列表页等地方调用文章列表,它可以灵活地控制调用的文章数量、排序方式、以及显示哪些字段。

dede arclist 调用内容
(图片来源网络,侵删)

基本语法和常用属性

{dede:arclist} 标签的基本结构如下:

{dede:arclist 
    typeid='' 
    row='' len='' 
    orderby='' 
    keyword=''
    channelid=''
    limit=''
}
    <a href='[field:arcurl/]'>[field:title/]</a>
    <p>[field:info/]</p>
    <p>发布时间:[field:pubdate function="MyDate('Y-m-d',@me)"/]</p>
    <p>作者:[field:writer/]</p>
    <hr>
{/dede:arclist}

这个标签由三部分组成:

  1. 开始标签 {dede:arclist ...}: 定义调用的条件和参数。
  2. 循环体: 在 {dede:arclist}{/dede:arclist} 之间的内容,会根据 row 属性的值重复显示。
  3. **结束标签 `{/dede:arclist}``: 标签循环结束。

核心属性详解

属性名 说明 示例
typeid (最常用) 调用指定栏目ID下的文章,多个ID用英文逗号 隔开,如不指定,则调用所有栏目。 typeid='1' (调用栏目ID为1下的文章)
typeid='1,3,5' (调用栏目1,3,5下的文章)
row (最常用) 调用文章的数量,即显示多少条。 row='10' (显示10条文章)
infolen (最常用) 内容摘要的长度,即截取文章摘要多少个字符。 infolen='200' (摘要最多显示200个字符)
orderby 文章的排序方式,常用值:pubdate(发布时间,默认)、click(点击量)、id(文章ID)、hot(热度)、rand(随机)。 orderby='click' (按点击量从高到低排序)
keyword 调用包含指定关键词的文章。 keyword='DedeCMS' (调用标题或内容中包含"DedeCMS"的文章)
channelid 指定模型ID来调用文章,默认 channelid='1' 是普通文章。 channelid='1' (调用普通文章)
channelid='2' (如果2是图集模型,则调用图集)
limit 限制起始位置和数量,格式为 起始位置,数量,常用于分页。 limit='0,10' (从第0条开始,共10条,等同于row='10')
limit='10,10' (从第10条开始,共10条,用于第二页)
flag 调用指定属性的文章。c代表推荐,h代表头条,p代表图片,可以组合使用。 flag='c' (只调用推荐文章)
flag='ch' (调用既是推荐又是头条的文章)

如何调用文章内容(

主要使用 infolen 属性来控制摘要长度,并在循环体内使用 [field:info/] 标签来输出。

调用默认摘要(文章摘要字段)

这是最常见的方式,DedeCMS 在后台发布文章时,有一个“的输入框。[field:info/] 默认调用的是这个字段的内容。

dede arclist 调用内容
(图片来源网络,侵删)

示例:调用栏目ID为1的5篇文章,标题30字,摘要200字

<h2>最新文章列表</h2>
<ul>
    {dede:arclist typeid='1' row='5' titlelen='30' infolen='200'}
    <li>
        <a href="[field:arcurl/]" title="[field:title/]" target="_blank">[field:title/]</a>
        <p>[field:info/]...</p>
    </li>
    {/dede:arclist}
</ul>

代码解释:

  • {dede:arclist typeid='1' row='5' titlelen='30' infolen='200'}: 调用栏目1的5篇文章,标题限制30字符,摘要限制200字符。
  • [field:arcurl/]: 调用文章的完整链接。
  • [field:title/]: 调用文章标题。
  • [field:info/]: 调用文章摘要。

调用文章正文的前N个字符

如果你没有填写文章摘要,或者想直接从文章正文中截取一部分作为摘要,可以使用 function='html2text(@me)' 函数,这个函数可以将HTML格式的文章内容转换为纯文本,然后再截取。

示例:从文章正文中截取前150个字符作为摘要

dede arclist 调用内容
(图片来源网络,侵删)
<h2>文章内容摘要</h2>
<ul>
    {dede:arclist typeid='3' row='8'}
    <li>
        <a href="[field:arcurl/]" target="_blank">[field:title/]</a>
        <p>[field:body function='html2text(@me)'/]</p>
    </li>
    {/dede:arclist}
</ul>

代码解释:

  • [field:body function='html2text(@me)'/]:
    • [field:body]: 获取文章的正文内容(包含HTML标签)。
    • function='html2text(@me)': 对获取到的正文内容执行 html2text 函数,将其中的HTML标签(如 <p>, <img>)去除,只保留纯文本。
    • 注意:这种方式会调用整个文章正文,如果文章很长,可能会影响页面加载速度。最佳实践是先填写摘要

完整示例

下面是一个完整的首页文章列表调用示例,包含了标题、发布时间和作者。

<div class="news-list">
    <h2>网站动态</h2>
    {dede:arclist 
        typeid='1' 
        row='6' 
        titlelen='40' 
        infolen='150' 
        orderby='pubdate' 
        flag='c'
    }
    <div class="news-item">
        <h3><a href="[field:arcurl/]" title="[field:title/]" target="_blank">[field:title/]</a></h3>
        <div class="news-summary">
            [field:info/]
        </div>
        <div class="news-info">
            <span>发布时间:[field:pubdate function="MyDate('Y-m-d H:i',@me)"/]</span>
            <span>作者:[field:writer/]</span>
            <span>浏览:[field:click/]</span>
        </div>
    </div>
    {/dede:arclist}
</div>

代码解释:

  • flag='c': 只调用带有“推荐”属性的文章。
  • [field:pubdate function="MyDate('Y-m-d H:i',@me)"/]: 对发布时间进行格式化,显示为 年-月-日 时:分
  • [field:click/]: 调用文章的点击次数。
  • [field:writer/]: 调用文章的作者。

常见问题与解决方案

  1. 为什么 [field:info/] 显示为空?

    • 原因:因为你在后台发布文章时,没有填写“字段。
    • 解决方案: a. 推荐:回到后台编辑文章,填写摘要字段。 b. 备选:使用 [field:body function='html2text(@me)'/] 从正文中截取,但要注意性能。
  2. 摘要截断后想显示“阅读更多”怎么办?

    • 你可以在 [field:info/] 后面手动添加一个链接。
    <p>[field:info/]... <a href="[field:arcurl/]" target="_blank">[阅读更多]</a></p>
  3. 如何调用子栏目(包括所有下级栏目)的文章?

    • DedeCMS 默认不支持直接调用子栏目的ID,你需要使用 {dede:channel} 标签先获取所有子栏目的ID,然后再用 {dede:arclist} 调用,或者使用更高级的SQL标签 {dede:sql}

    方法一(推荐):使用sonclass标签 {dede:arclist} 有一个 sonclass 属性,如果设置为 1,则会调用当前栏目及其所有下级栏目的文章。

    {dede:arclist typeid='1' row='10' sonclass='1'}
        <!-- 循环内容 -->
    {/dede:arclist}

    这个 typeid='1' 是父栏目的ID。

希望这份详细的指南能帮助你完全掌握 dede:arclist 的使用!

-- 展开阅读全文 --
头像
define在C语言中如何定义结构体字段?
« 上一篇 2025-12-17
织梦kindeditor样式如何自定义调整?
下一篇 » 2025-12-17
取消
微信二维码
支付宝二维码

目录[+]