首页如何用dede list调用列表?

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

{dede:list} 是DedeCMS中最核心、最常用的列表标签,用于在页面上循环输出文章列表,比如首页的文章列表、栏目页的文章列表、搜索结果页等。

首页使用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}

参数说明:

  • pagesize='数字': 这是最重要的参数,它用来指定每页显示的文章数量。pagesize='10' 表示每页显示10篇文章。
  • col='数字': 指定每行显示几条记录。col='2' 会将列表输出为两列,这个参数在现代响应式布局中较少使用,因为通常会用CSS Grid或Flexbox来控制布局。
  • titlelen='数字': 标题长度,截取文章标题的字数。titlelen='30' 表示标题最多显示30个字符(一个汉字算一个字符)。
  • infolen='数字': 内容摘要长度,截取文章摘要(description字段)的字数。
  • orderby='排序字段': 排序方式,按哪个字段进行排序。
    • orderby='sortrank': 按文章排序级别(默认,常用)
    • orderby='pubdate': 按发布时间(常用)
    • orderby='hot'orderby='click': 按点击量
    • orderby='rand': 随机排序
  • orderway='排序方式': 排序顺序。
    • orderway='desc': 降序(从大到小,如最新发布的文章在前)
    • orderway='asc': 升序(从小到大,如最早发布的在前)
    • 默认为 desc

{dede:list} 内部的常用字段

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

首页使用dede list
(图片来源网络,侵删)

常用字段列表:

| 字段名 | 说明 | 示例 | | :--- | :--- | :--- | | 文章标题 | [field:title/] | | arcurl | 文章链接 | <a href='[field:arcurl/]'>...</a> | | pubdate | 发布时间(时间戳格式) | [field:pubdate/] | | description | | [field:description/] | | click | 文章点击数 | [field:click/] | | litpic | 文章缩略图 | <img src='[field:litpic/]' /> | | typename | 所属栏目名称 | [field:typename/] | | typeurl | 所属栏目链接 | [field:typeurl/] | | id | 文章ID | [field:id/] |

高级字段(使用函数处理):

为了更好地显示时间、截取内容等,通常会结合PHP函数来使用。

首页使用dede list
(图片来源网络,侵删)
  • 时间格式化:

    <!-- 格式为:2025-10-27 10:30:00 -->
    [field:pubdate function='MyDate("Y-m-d H:i:s",@me)'/]
    <!-- 格式为:10-27 -->
    [field:pubdate function='MyDate("m-d",@me)'/]
  • 标题截取:

    <!-- 截取30个字符,并添加... -->
    [field:title function='cn_substr(@me, 30)'/]
  • 内容截取(获取文章前N个字符):

    <!-- 获取文章内容的前200个字符作为摘要 -->
    [field:body function='cn_substr(@me, 200)'/]

首页使用 {dede:list} 的完整示例

假设我们要做一个博客首页,显示文章列表,每页10篇,按发布时间倒序排列。

在后台创建首页模板

登录DedeCMS后台 -> 模板 -> 默认模板管理 -> 选择你的网站模板 -> 点击 index.htm (首页模板) 进行编辑。

编写首页HTML和Dede标签

一个典型的首页布局如下:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">{dede:global.cfg_webname/}</title>
    <link rel="stylesheet" href="/templets/default/style.css">
</head>
<body>
    <div class="header">
        <h1><a href="/">{dede:global.cfg_webname/}</a></h1>
    </div>
    <div class="main">
        <!-- 左侧主要内容区 - 使用 {dede:list} 调用文章列表 -->
        <div class="content">
            <h2>最新文章</h2>
            {dede:list pagesize='10' orderby='pubdate' orderway='desc'}
            <article class="post-item">
                <div class="post-thumb">
                    <a href="[field:arcurl/]">
                        <img src="[field:litpic/]" alt="[field:title function='html2text(@me)'/]">
                    </a>
                </div>
                <div class="post-info">
                    <h3><a href="[field:arcurl/]">[field:title/]</a></h3>
                    <div class="post-meta">
                        <span>发布于:[field:pubdate function='MyDate("Y-m-d",@me)'/]</span>
                        <span>阅读:[field:click/]</span>
                    </div>
                    <p class="post-excerpt">
                        [field:description function='cn_substr(@me, 150)'/]...
                    </p>
                </div>
            </article>
            {/dede:list}
            <!-- 分页条 -->
            <div class="page-nav">
                {dede:pagelist listsize='4' listitem='pre,next,end,option,info'/}
            </div>
        </div>
        <!-- 右侧边栏 -->
        <div class="sidebar">
            {dede:include filename="side.htm"/}
        </div>
    </div>
    <div class="footer">
        {dede:include filename="footer.htm"/}
    </div>
</body>
</html>

代码解析:

  • {dede:list pagesize='10' orderby='pubdate' orderway='desc'}: 在首页调用10篇文章,按发布时间倒序排列。
  • [field:litpic/]: 显示文章的缩略图,如果文章没有缩略图,这里可能会显示空白或默认图片。
  • [field:arcurl/]: 生成文章的链接。
  • [field:title/]: 显示文章标题。
  • [field:pubdate function='MyDate("Y-m-d",@me)'/]: 将时间戳格式化为“年-月-日”的格式。
  • `[field:click/]: 显示文章的点击次数。
  • [field:description function='cn_substr(@me, 150)'/]: 截取文章摘要的前150个字符。
  • {dede:pagelist ... /}: 这是分页标签,必须和 {dede:list} 配合使用,才能实现翻页功能。
    • listsize='4': 显示4个页码按钮。
    • listitem='pre,next,end,option,info': 定义显示哪些分页元素,包括:上一页、下一页、末页、下拉跳转页、页码信息。

常见问题与注意事项

  1. 为什么我的首页没有内容?

    • 检查栏目属性:确保你想要在首页显示文章的栏目,其“栏目属性”设置为“首页栏目”,在后台 栏目管理 -> 编辑栏目 -> 勾选“栏目列表”。
    • 检查文章状态:确保文章已经“审核通过”。
    • 检查模板调用:确认 {dede:list} 标签没有拼写错误,并且参数正确。
  2. 如何只调用指定栏目的文章?

    • {dede:list} 本身不带栏目筛选功能,如果你想在首页只显示某个栏目(如“技术分享”)的文章,有两种方法:
      • 方法一(推荐):在后台创建一个“首页栏目”,并将“技术分享”这个栏目移动到“首页栏目”下面,然后在首页模板中使用 {dede:list} 即可,它会自动调用所有“首页栏目”下的文章。
      • 方法二:使用 {dede:arclist} 标签,它可以直接指定typeid。{dede:arclist typeid='1' pagesize='10'}...{/dede:arclist} (typeid='1'是栏目ID)。
  3. {dede:list}{dede:arclist} 的区别是什么?

    • {dede:list}:
      • 用途:主要用于列表页首页
      • 分页自带分页功能,配合 {dede:pagelist} 使用。
      • 性能:在数据量大时,分页查询可能会有性能压力。
    • {dede:arclist}:
      • 用途:功能更强大的列表调用标签,常用于首页、栏目页、内容页等任何地方调用文章列表。
      • 分页不带分页功能,如果需要分页,需要手动处理或结合其他标签。
      • 灵活性:参数更多,可以指定栏目、频道、关键字等,非常灵活。

对于制作首页或需要分页的列表页,{dede:list} 是最直接、最方便的选择,如果只是需要在某个固定位置调用少量文章(如首页推荐、相关文章),{dede:arclist} 会更合适。

-- 展开阅读全文 --
头像
织梦mp3播放器代码如何实现核心功能?
« 上一篇 02-20
织梦忘记登录密码怎么办?
下一篇 » 02-20

相关文章

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

目录[+]