dede arclist循环标签如何正确使用?

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

arclist 主要用于在模板页面中循环输出文章列表,比如首页、列表页、相关文章等,它功能非常强大,可以通过各种参数来精确控制输出的内容。

dede arclist 循环
(图片来源网络,侵删)

基本语法

arclist 标签的基本结构如下:

{dede:arclist 
    flag='' 
    typeid='' 
    row='' 
    col='' len='' 
    infolen='' 
    imgwidth='' 
    imgheight=''
    orderby='' 
    keyword=''
    channelid=''
    limit=''
    }
    <!-- 循环体内的HTML和子标签 -->
{/dede:arclist}

核心属性参数详解

下面是 arclist 最常用的一些参数,我会逐一解释它们的用途。

typeid (栏目ID)

  • 作用:指定要获取的文章所属的栏目ID。
  • 用法
    • typeid='1':只获取栏目ID为1下的文章。
    • typeid='1,2,3':获取栏目ID为1、2、3下的文章(多栏目用英文逗号隔开)。
    • typeid='top':获取所有顶级栏目的文章。
    • typeid='son':获取当前栏目下所有子栏目的文章(必须在栏目列表页使用)。
    • typeid='self':只获取当前栏目的文章(必须在栏目列表页使用)。
  • 注意typeid 不指定,arclist 默认会获取当前栏目下的文章。

row (获取条数)

  • 作用:指定要输出的文章数量。
  • 用法
    • row='10':输出10篇文章。
    • row='0':输出所有符合条件的文章(谨慎使用,可能导致页面加载缓慢)。
  • 默认值:10。

col (分列数)

  • 作用:将输出的文章列表进行分列显示,通常配合 row 使用。
  • 用法
    • row='6' col='3':共获取6篇文章,每行显示3篇,共2行。
  • 默认值:1。

titlelen (标题长度)

  • 作用:控制文章标题显示的字符长度。
  • 用法:len='30'`:标题最多显示30个字符(一个汉字算一个字符)。
  • 默认值:30。

infolen (摘要长度)

  • 作用:控制文章摘要(description)的显示长度。
  • 用法
    • infolen='120':摘要最多显示120个字符。
  • 默认值:120。

imgwidthimgheight (缩略图尺寸)

  • 作用:控制文章缩略图的显示宽度和高度。
  • 用法
    • imgwidth='200' imgheight='150':缩略图显示为 200x150 像素。
  • 注意:这只是在页面上显示的尺寸,不会改变图片文件本身的大小,如果需要生成固定尺寸的缩略图,需要在后台“系统” -> “图片设置”中进行配置。

orderby (排序方式)

  • 作用:指定文章的排序规则。
  • 常用值
    • orderby='hot':按点击数(浏览量)从高到低排序。
    • orderby='pubdate':按发布时间从新到旧排序(最常用)。
    • orderby='click':同 hot
    • orderby='id':按文章ID从大到小排序。
    • orderby='rand':随机排序。
  • 默认值default,通常按发布时间排序。

flag (特定属性)

  • 作用:获取带有特定属性的文章。
  • 用法
    • flag='h':只获取带有“头条”属性的文章。
    • flag='c':只获取带有“推荐”属性的文章。
    • flag='a':只获取带有“特荐”属性的文章。
    • flag='h,c':获取同时带有“头条”和“推荐”属性的文章。
    • flag='p':只获取带“图片”的文章(即必须有缩略图)。

limit (起始位置和条数)

  • 作用:更灵活地控制获取数据的起始位置和数量。
  • 用法
    • limit='0,10':从第0条开始,获取10条。(相当于 row='10'
    • limit='10,5':从第10条开始,获取5条。(常用于分页)

channelid (模型ID)

  • 作用:指定要获取的文章所属的内容模型ID。
  • 用法
    • channelid='1':默认的文章模型。
    • channelid='2':如果网站有其他模型(如软件下载、图集等),可以指定其ID。

keyword (关键词)

  • 作用:根据关键词获取文章。
  • 用法
    • keyword='DedeCMS,织梦'或关键词包含 "DedeCMS" 或 "织梦" 的文章。

循环体内的子标签

{dede:arclist}{/dede:arclist} 之间,你可以使用各种子标签来输出文章的具体信息。

子标签 说明 示例
[field:title/] <a href="[field:arcurl/]">[field:title/]</a>
[field:arcurl/] 文章链接 <a href="[field:arcurl/]">查看详情</a>
[field:description/] 文章摘要 [field:description function='cn_substr(@me,120)'/]
[field:pubdate/] 发布时间 [field:pubdate function='strftime("%Y-%m-%d",@me)'/]
[field:click/] 点击数 浏览:[field:click/]次
[field:litpic/] 缩略图地址 <img src="[field:litpic/]" alt="[field:title/]">
[field:textlink/] 带链接的标题 [field:textlink/] (等同于 <a href="[field:arcurl/]">[field:title/]</a>)
[field:image/] 带链接的缩略图 [field:image/] (等同于 <a href="[field:arcurl/]"><img src="[field:litpic/]" alt="[field:title/]"></a>)
[field:info/] 带链接的摘要 [field:info/] (等同于 <a href="[field:arcurl/]">[field:description/]</a>)
[field:typename/] 所属栏目名 来自:[field:typename/]
[field:typeurl/] 所属栏目链接 来自:<a href="[field:typeurl/]">[field:typename/]</a>

子标签函数修饰: 可以使用 function 对子标签的值进行处理,

dede arclist 循环
(图片来源网络,侵删)
  • [field:title function='cn_substr(@me,20)'/]前20个字符。
  • [field:pubdate function='strftime("%Y年%m月%d日",@me)'/]:格式化日期为 2025年10月27日
  • @me 代表子标签当前的原始值。

综合示例

示例1:首页头条新闻

需求:在首页显示一个“头条新闻”区域,只获取带有“h”属性的最新5篇文章。

<div class="headlines">
    <h2>头条新闻</h2>
    <ul>
        {dede:arclist flag='h' row='5' orderby='pubdate'}
        <li>
            <span class="date">[field:pubdate function='strftime("%m-%d",@me)'/]</span>
            <a href="[field:arcurl/]" target="_blank">[field:title/]</a>
        </li>
        {/dede:arclist}
    </ul>
</div>

示例2:文章列表页

需求:在文章列表页,显示当前栏目下所有文章,每行显示2篇,标题30字,摘要120字。

<div class="article-list">
    {dede:arclist row='8' col='2' titlelen='30' infolen='120' orderby='pubdate'}
    <div class="article-item">
        <a href="[field:arcurl/]" class="img-link">
            <img src="[field:litpic/]" alt="[field:title/]" width="300" height="200">
        </a>
        <h3><a href="[field:arcurl/]">[field:title/]</a></h3>
        <p class="summary">[field:description/]</p>
        <div class="meta">
            <span>[field:pubdate function='strftime("%Y-%m-%d",@me)'/]</span>
            <span>浏览:[field:click/]</span>
        </div>
    </div>
    {/dede:arclist}
</div>

示例3:带分页的列表

需求:在列表页显示文章,并实现分页,这里需要结合 list 标签和 pagelist

<!-- 列表内容 -->
<div class="article-list">
    {dede:list pagesize='10' titlelen='40' orderby='pubdate'}
    <div class="list-item">
        <h3><a href="[field:arcurl/]">[field:title/]</a></h3>
        <div class="info">
            <span>[field:pubdate function='strftime("%Y-%m-%d",@me)'/]</span>
            <span>作者:[field:writer/]</span>
            <span>来源:[field:source/]</span>
            <span>浏览:[field:click/]</span>
        </div>
        <p>[field:description/]</p>
    </div>
    {/dede:list}
</div>
<!-- 分页条 -->
<div class="page-nav">
    {dede:pagelist listsize='4' listitem='info,index,end,pre,next,pageno'}
    {/dede:pagelist}
</div>

注意

  • {dede:list} 通常用于栏目列表页,它自带分页功能,typeid 默认为当前栏目。
  • {dede:arclist} 更灵活,可以跨栏目调用,但本身不带分页功能,如果要在首页等非列表页实现分页,需要使用 php 代码结合 GetPageList 等函数,比较复杂。

常见问题与注意事项

  1. typeid 不生效?

    dede arclist 循环
    (图片来源网络,侵删)
    • 确保你填写的栏目ID是正确的。
    • 确保你没有在栏目列表页错误地使用了 typeid='self'typeid='son',而实际想调用其他栏目。
  2. 缩略图 [field:litpic/] 不显示?

    • 检查文章是否上传了缩略图。
    • 检查后台“系统” -> “系统基本参数” -> “核心设置”中,是否开启了“使用远程图片”。
    • 检查图片路径是否正确,服务器上的图片文件是否存在。
  3. arclistlist 的区别?

    • arclist万能列表,可以在任何页面调用,功能强大,支持跨栏目调用,但不带分页,适合首页、相关文章等。
    • list栏目列表,主要用于栏目列表页,自带分页功能,typeid 默认为当前栏目,调用相对简单。

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

-- 展开阅读全文 --
头像
织梦免费手机端模板哪里下载?
« 上一篇 01-09
dede channel如何实现嵌套调用?
下一篇 » 01-09

相关文章

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