dedecms dede arclist标签如何调用数据?

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

{dede:arclist} 是一个列表循环标签,主要用于在首页、列表页、频道页等地方,调用并展示文章、图集、软件等文档的列表,它是整个 Dedecms 模板体系中使用频率最高的标签之一。

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

基本语法和结构

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

{dede:arclist 
    flag='' 
    typeid='' 
    row='' 
    col='' len='' 
    infolen='' 
    imgwidth='' 
    imgheight='' 
    listtype='' 
    orderby='' 
    keyword=''
    channelid=''
    limit='start,len'
}
    <li>
        <a href="[field:arcurl/]">[field:title/]</a>
        <span>[field:pubdate function="MyDate('Y-m-d', @me)"/]</span>
    </li>
{/dede:arclist}
  • {dede:arclist ...}: 标签的开始,包含各种属性。
  • 循环体内的HTML代码,这里用 [field:fieldname/] 来输出每个文档的特定字段。
  • {/dede:arclist}: 标签的结束。

常用属性详解

属性写在 {dede:arclist} 和 之间,用空格隔开,它们决定了要调用哪些文章、调用多少以及如何排序。

核心属性(必选或常用)

属性名 参数说明 示例 备注
typeid 栏目ID typeid='1' 最核心的属性,指定要调用哪个栏目的文章,可以是单个ID(如 1),多个ID用逗号隔开(如 1,3,5),-1 表示调用所有栏目(包括子栏目)。
row 调用条数 row='10' 设置要显示的文章数量,默认为 10 条。
orderby 排序方式 orderby='pubdate' 决定文章的排列顺序,常用值:pubdate(发布时间,默认)、click(点击量)、id(文章ID)、arcrank(文章排序级别)、rand(随机)。
flag 特殊属性 flag='h' 调用具有特定属性的文章,常用值:h(头条)、c(推荐)、p(图片)、f(幻灯片),可以组合,如 flag='hc'
channelid 模型ID channelid='1' 指定调用哪个内容模型下的文章。1 代表文章模型,2 代表图集模型,3 代表下载模型,默认为 1

其他常用属性

属性名 参数说明 示例 备注
infolen 摘要长度 infolen='100' 设置文章摘要(description)显示的字符长度。
imgwidth / imgheight 缩略图尺寸 imgwidth='150' imgheight='100' 如果调用文章的第一张图片作为缩略图,可以设置其宽高。
listtype 列表类型 listtype='image' 指定列表的展示形式。image 为图文列表,text 为纯文本列表。
keyword 关键词筛选 keyword='织梦,Dedecms' 调用包含指定关键词的文章,多个关键词用逗号隔开。
limit 起始与条数 limit='0,5' 更灵活地控制调用范围,格式为 起始索引,调用条数limit='0,5' 等同于 row='5'limit='5,5' 表示从第6条开始,调用5条。
subday 天数筛选 subday='10' 调用指定天数内发布的文章。subday='7' 表示调用最近7天发布的文章。

常用字段(Field)详解

字段是循环体内用来输出具体内容的占位符,格式为 [field:fieldname/]

字段名 示例
[field:title/] <a href="[field:arcurl/]">[field:title/]</a>
[field:arcurl/] 文章链接 <a href="[field:arcurl/]">阅读全文</a>
[field:pubdate/] 发布时间(时间戳格式) [field:pubdate/] 输出如 1701234567
[field:description/] 文章摘要 [field:description/]
[field:picname/] 文章第一张图片的路径 <img src="[field:picname/]" alt="[field:title/]">
[field:click/] 文章点击量 <span>点击:[field:click/]</span>
[field:id/] 文章ID [field:id/]
[field:litpic/] [field:picname/],缩略图路径 <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/] 截取后的摘要(配合 infolen 属性) [field:info/]
[field:typelink/] 栏目链接 [field:typelink/]
[field:filename/] 文章的文件名(不含后缀) [field:filename/]

字段高级用法:函数

字段支持使用PHP函数来格式化输出,语法为 [field:fieldname function='functioname(@me)'/]

dedecms dede arclist
(图片来源网络,侵删)
  • 日期格式化:这是最常用的。

    {field:pubdate function='MyDate("Y-m-d H:i:s", @me)'/}
    • @me 代表字段本身(这里是时间戳)。
    • MyDate 是DedeCMS内置的日期处理函数。
    • "Y-m-d H:i:s" 是PHP的日期格式,Y代表4位年份,m代表月份,d代表日。
  • 去除HTML标签

    {field:description function='htmlspecialchars(strip_tags(@me))'/}
    • strip_tags(@me) 去除摘要中的HTML标签。
    • htmlspecialchars() 将特殊字符转为HTML实体,防止XSS攻击。

综合示例

示例1:首页最新文章列表

调用栏目ID为 1 的最新 10 篇文章,标题长度 30 字,按发布时间倒序。

<ul class="news-list">
    {dede:arclist typeid='1' row='10' titlelen='30' orderby='pubdate'}
        <li>
            <span class="date">[field:pubdate function="MyDate('m-d', @me)"/]</span>
            <a href="[field:arcurl/]" title="[field:title/]">[field:title/]</a>
        </li>
    {/dede:arclist}
</ul>

示例2:带缩略图的图文列表

调用栏目ID为 26 篇推荐文章,显示缩略图和摘要。

dedecms dede arclist
(图片来源网络,侵删)
<div class="pic-list">
    {dede:arclist typeid='2' row='6' flag='c' imgwidth='200' imgheight='150' titlelen='40' infolen='100'}
        <div class="item">
            <a href="[field:arcurl/]">
                <img src="[field:litpic/]" alt="[field:title/]" />
                <h3>[field:title/]</h3>
                <p>[field:info/]</p>
            </a>
        </div>
    {/dede:arclist}
</div>

示例3:调用多个栏目的热门文章

调用栏目ID为 35 的文章,按点击量排序,显示 5 条。

<div class="hot-articles">
    <h2>热门文章</h2>
    <ol>
        {dede:arclist typeid='3,5' row='5' orderby='click'}
            <li>
                <span class="num">[field:global name=autoindex/]</span>
                <a href="[field:arcurl/]" title="[field:title/]">[field:title/]</a>
            </li>
        {/dede:arclist}
    </ol>
</div>

注意:[field:global name=autoindex/] 用于获取循环的序号(从1开始)。


重要注意事项

  1. 栏目IDtypeid 是关键,确保你调用的栏目ID是正确的,你可以在DedeCMS后台的“频道模型” -> “栏目管理”中查看每个栏目的ID。
  2. 模板缓存:DedeCMS有模板缓存机制,修改模板后,如果前台页面没有变化,请到后台点击“生成” -> “更新主页HTML”或“更新栏目HTML”,或者直接清除缓存。
  3. 嵌套问题{dede:arclist} 不能嵌套在它自己内部,也不能嵌套在 {dede:list} 内部。
  4. 性能{dede:arclist} 是通过SQL查询数据库的,在一个页面上使用过多或调用过大的数据量(如 row='100'),可能会影响页面加载速度,对于复杂的列表,可以考虑使用DedeCMS的“列表页”功能,它生成的是静态HTML,性能更好。

掌握 {dede:arclist} 是使用DedeCMS进行二次开发和模板制作的基础,多加练习和尝试不同的属性组合,就能灵活地构建出各种丰富的列表页面。

-- 展开阅读全文 --
头像
织梦dede如何实现PC与手机同步标签?
« 上一篇 2025-12-02
dede orderby=pubdate按什么排序?
下一篇 » 2025-12-02

相关文章

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

目录[+]