dede list标签怎么用?参数怎么写?

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

{dede:list} 主要用于在列表页(如首页、栏目页、搜索结果页等)调用文章列表,是构建网站内容页面的基础。

dede list如何使用
(图片来源网络,侵删)

{dede:list} 的基本语法

{dede:list} 标签通常由三部分组成:开始标签、中间的循环体和结束标签。

{dede:list pagesize='10'}
    <li>
        <a href="[field:arcurl/]">[field:title/]</a>
        <span>[field:pubdate function="MyDate('Y-m-d',@me)"/]</span>
    </li>
{/dede:list}

语法解析:

  • {dede:list pagesize='10'}: 这是标签的开始。
    • pagesize='10': 这是一个属性,用于设置每页显示的文章数量,这是最常用的属性之一,如果不设置,它会使用后台“核心模型” -> “内容模型管理” -> “普通文章” 中设置的“列表每页显示数”。
  • <li>...</li>: 这是标签的循环体
    • {dede:list}{/dede:list} 之间的所有代码都会被循环执行,每循环一次,就代表一篇文章。
    • 循环体内,我们使用 [field:xxx/] 这样的字段来调用文章的具体信息。
  • {/dede:list}: 这是标签的结束,标志着循环的终止。

常用属性

{dede:list} 标签支持多种属性,用于控制列表的显示内容。

属性名 说明 示例
pagesize 设置每页显示的文章数量。 pagesize='20'
infolen 设置文章摘要(简介)的显示长度(字符数)。 infolen='150'
orderby 排序方式,这是非常重要的属性,可选值:
id (默认, 按文章ID排序)
sortrank (按文章排序值,即后台设置的权重)
pubdate (按发布时间排序)
click (按点击量排序)
arcrank (按文章等级排序)
orderby='pubdate'
orderway 排序方向,配合 orderby 使用。
desc (默认, 降序,即从大到小/新到旧)
asc (升序,即从小到大/旧到新)
orderby='click' orderway='desc'
channel 指定调用特定模型的文章,常用模型ID:
1 (普通文章)
-1 (外部链接)
channel='1'
typeid 指定调用某个栏目(及其子栏目)下的文章,通常在栏目页模板中,这个值会自动获取当前栏目ID,无需手动设置。 typeid='5'
limit 用于限制记录的起始位置和数量,格式为 "起始ID,数量"limit='0,10' 表示从第0条开始,显示10条。pagesizelimit 不要同时使用。 limit='5,10'
subday 调用指定天数内发布的文章。subday='7' 表示调用最近7天内发布的文章。 subday='30'
keyword 调用包含指定关键词的文章。 keyword='织梦'

常用字段 (Field)

{dede:list} 的循环体内,使用 [field:字段名/] 来获取文章的各个信息。

dede list如何使用
(图片来源网络,侵删)
字段名 说明 示例
[field:title/] <a href="[field:arcurl/]">[field:title/]</a>
[field:arcurl/] 文章的完整链接URL。 <a href="[field:arcurl/]">查看详情</a>
[field:pubdate/] 文章的发布时间,格式为 YYYY-MM-DD HH:II:SS [field:pubdate/]
[field:description/] 文章的摘要(简介)。 [field:description/]
[field:litpic/] 文章的缩略图路径。 <img src="[field:litpic/]" alt="[field:title/]">
[field:click/] 文章的点击量。 点击:[field:click]次
[field:writer/] 文章的作者。 作者:[field:writer]
[field:source/] 文章的来源。 来源:[field:source]
[field:typename/] 文章所属的栏目名称。 [field:typename]

高级用法:字段函数

默认的字段格式不能满足需求,我们可以使用函数来对字段进行格式化,语法为:[field:字段名 function="函数名('参数',@me)"/]

常用函数示例:

  1. 日期格式化 (MyDate)

    • 默认的 [field:pubdate/] 显示的是 2025-10-27 10:30:00
    • 我们可以只显示日期:[field:pubdate function="MyDate('Y-m-d',@me)"/],结果为 2025-10-27
    • 显示 年月日 时分[field:pubdate function="MyDate('Y-m-d H:i',@me)"/]
  2. 截取字符串 (cn_substr)

    dede list如何使用
    (图片来源网络,侵删)
    • 默认的 [field:title/] 会显示完整标题,可能会破坏页面布局。
    • 前20个字符:[field:title function="cn_substr(@me,20)"/]
    • 截取摘要前100个字符:[field:description function="cn_substr(@me,100)"/]
  3. 去除HTML标签 (htmlspecialchars)

    • 有时摘要里会带有 <p> 等标签,我们不希望显示出来。
    • 去除HTML标签后截取:[field:description function="cn_substr(htmlspecialchars(@me),150)"/]
  4. 数字格式化 (number_format)

    • 将点击量格式化为 1,234 的形式:[field:click function="number_format(@me)"/]

完整示例

假设我们要制作一个文章列表页,要求:

  • 每页显示15篇文章。
  • 按发布时间倒序排列,只显示30个字符。
  • 显示缩略图、格式化后的日期和点击量。

list_article.htm 模板文件内容:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">{dede:field.title/}</title>
</head>
<body>
    <h1>{dede:field.typename/}</h1>
    <ul class="article-list">
        {dede:list pagesize='15' orderby='pubdate' orderway='desc'}
        <li>
            <!-- 如果有缩略图则显示,否则显示默认图 -->
            [field:litpic runphp='yes']
                if(@me == '') @me = '/images/default.jpg';
                else @me = @me;
            [/field:litpic]
            <a href="[field:arcurl/]" title="[field:title/]">
                <img src="[field:litpic/]" alt="[field:title/]">
            </a>
            <div class="article-info">
                <h2>
                    <a href="[field:arcurl/]">[field:title function="cn_substr(@me,30)"/]</a>
                </h2>
                <p class="meta">
                    发布时间:[field:pubdate function="MyDate('Y-m-d',@me)"] &nbsp;&nbsp;
                    点击:[field:click function="number_format(@me)"]次
                </p>
                <p class="summary">
                    [field:description function="cn_substr(htmlspecialchars(@me),100)"]...
                </p>
            </div>
        </li>
        {/dede:list}
    </ul>
    <!-- 分页标签 -->
    <div class="page-nav">
        {dede:pagelist listsize='4' listitem='info,index,end,pre,next,pageno'}
        {/dede:pagelist}
    </div>
</body>
</html>

重要注意事项

  1. 模板位置{dede:list} 通常用在列表模板首页模板中,你需要确保在后台“模板管理”中,为对应的栏目选择了正确的列表模板文件(如 list_article.htm)。
  2. {dede:arclist} 的区别
    • {dede:list}严格分页,它的核心功能就是配合分页标签 {dede:pagelist} 使用,它会在数据库层面进行 LIMIT 分页查询,性能较好,适用于标准的列表页。
    • {dede:arclist}更灵活,它主要用于首页、封面页等需要从多个栏目调用文章的场景,它也可以实现分页,但分页逻辑不如 {dede:list} 纯粹,通常需要配合 pagesize 属性使用。
    • 简单总结:做栏目列表页,优先用 {dede:list};做首页聚合调用,优先用 {dede:arclist}
  3. 性能:对于文章数量非常多的栏目,{dede:list} 的分页性能是可靠的,但如果列表本身显示的文章数量就非常多(pagesize=100),可以考虑开启DedeCMS的“arcpagelist”高级功能来进一步提升性能。

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

-- 展开阅读全文 --
头像
dede css中图片路径如何正确设置?
« 上一篇 02-19
C语言中a与&a有何本质区别?
下一篇 » 02-19
取消
微信二维码
支付宝二维码

目录[+]