dede 文章列表标签

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

arclist 标签用于在模板中调用文章列表,比如首页、列表页、频道页等,是构建网站内容页面的基石。

dede 文章列表标签
(图片来源网络,侵删)

arclist 标签的基本语法

arclist 标签的基本结构如下:

{dede:arclist}
    <a href='[field:arcurl/]'>[field:title/]</a>
    <span>[field:pubdate function="MyDate('Y-m-d', @me)"/]</span>
{/dede:arclist}
  • {dede:arclist}{/dede:arclist} 是标签的开始和结束。
  • 在这两个标签之间,是列表项的HTML模板,你可以自由定义其样式和结构。
  • [field:xxx/] 是字段名,用于获取每篇文章的具体信息,如标题、链接、发布时间等。

常用属性

arclist 标签功能强大,主要通过属性来控制其行为,以下是最常用的一些属性:

核心属性

属性名 含义 示例
typeid 指定栏目ID,只调用该栏目及其子栏目的文章。 typeid='1' (调用ID为1的栏目及其子栏目)
row 获取记录条数,即显示多少篇文章。 row='10' (显示10篇文章)
orderby 排序方式,决定文章的排列顺序。 orderby='pubdate' (按发布时间排序)
orderway 排序方向,与 orderby 配合使用。 orderway='desc' (降序,最新在前)

其他常用属性

属性名 含义 示例
channelid 指定模型ID,默认为文章模型 (1)。 channelid='1'
limit 起始位置,记录数,比 row 更灵活。 limit='0,5' (从第0条开始,取5条)
idlist 指定文章ID列表,用逗号隔开。 idlist='1,3,5,7' (只调用ID为1,3,5,7的这4篇文章)
flag 特定属性文章,如头条、推荐、图文等。 flag='c' (调用头条推荐)
subday 指定天数内的文章。 subday='7' (调用最近7天发布的文章)
keyword 包含关键词的文章。 keyword='织梦,DedeCMS'
noflag 排除特定属性的文章。 noflag='h' (不调用带h属性的文章)
ismember 是否调用会员投稿内容。 ismember='1' (只调用会员投稿)
att 调用带有缩略图的文章。 att='1'
template 指定列表模板文件,通常用于特殊需求。 template='mylist.htm'

常用字段

{dede:arclist}...{/dede:arclist} 循环体内,可以使用 [field:字段名/] 来获取文章信息。

字段名 含义 示例/备注
[field:title/] [field:title/]
[field:arcurl/] 文章链接 [field:arcurl/]
[field:pubdate/] 发布时间 (时间戳格式) 通常需要配合函数格式化
[field:description/] 文章摘要 [field:description/]
[field:litpic/] 文章缩略图 [field:litpic/]
[field:click/] 文章点击量 [field:click/]
[field:source/] 文章来源 [field:source/]
[field:writer/] 文章作者 [field:writer/]
[field:typelink/] 栏目链接 [field:typelink/]
[field:typename/] 栏目名称 [field:typename/]

综合示例

示例1:首页最新文章列表(最常用)

在首页模板 index.htm 中,调用ID为1的栏目下的10篇最新文章,标题长度限制为30个字符。

dede 文章列表标签
(图片来源网络,侵删)
<h2>最新文章</h2>
<ul>
    {dede:arclist typeid='1' row='10' titlelen='30' orderby='pubdate' orderway='desc'}
        <li>
            <a href="[field:arcurl/]" title="[field:title/]">[field:title/]</a>
            <span>[field:pubdate function="MyDate('Y-m-d', @me)"/]</span>
        </li>
    {/dede:arclist}
</ul>

说明:

  • orderby='pubdate' orderway='desc' 是组合使用,表示“按发布时间降序排列”,即最新的在最前面。
  • function="MyDate('Y-m-d', @me)" 是对 pubdate 字段的处理,将时间戳格式化为 年-月-日 的格式。

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

调用所有栏目下的5篇带有缩略图的推荐文章。

<div class="pic-list">
    {dede:arclist row='5' flag='c' att='1' orderby='pubdate' orderway='desc'}
        <div class="pic-item">
            <a href="[field:arcurl/]">
                <img src="[field:litpic/]" alt="[field:title/]" />
                <span class="title">[field:title/]</span>
            </a>
        </div>
    {/dede:arclist}
</div>

说明:

  • flag='c' 表示调用推荐(c代表“推荐”,h代表“头条”,p代表“图片”等)。
  • att='1' 表示只调用有缩略图的文章。
  • [field:litpic/] 是缩略图的地址。

示例3:指定多个栏目

调用ID为1和3的两个栏目下的文章。

{dede:arclist typeid='1,3' row='8'}
    <a href="[field:arcurl/]">[field:title/]</a>
{/dede:arclist}

示例4:排除某个栏目

调用除了ID为2的栏目之外的所有栏目的文章。

{dede:arclist typeid='all' notypeid='2' row='10'}
    <a href="[field:arcurl/]">[field:title/]</a>
{/dede:arclist}

进阶技巧

使用PHP代码 (php)

如果需要在列表中执行一些复杂的逻辑,可以使用 php

{dede:arclist row='5'}
    {dede:php}
        $this->Fields['title'] = mb_substr($this->Fields['title'], 0, 20, 'utf-8') . '...';
    {/dede:php}
    <a href="[field:arcurl/]">[field:title/]</a>
{/dede:arclist}

注意: php 标签在某些安全设置较高的环境中可能被禁用。

使用自定义函数

pubdate 示例中,我们已经使用了 function 属性来调用系统自带的 MyDate 函数,你也可以在 include/extend.func.php 文件中自定义函数,然后在标签中调用。


常见问题与解决方案

问题1:typeid 为什么不生效?

  • 原因1: 栏目ID输入错误,请确保ID是正确的。
  • 原因2: 没有调用子栏目,默认情况下,typeid='1' 会调用ID为1的栏目及其所有子栏目的文章,如果只想调用ID为1的栏目本身,请使用 typeid='1,0' (后面的 0 是一个特殊值,表示不调用子栏目)。

问题2:文章列表显示为空?

  • 原因1: 指定的栏目下没有文章。
  • 原因2: 属性冲突,你同时使用了 flag='c'(推荐)和 ismember='1'(会员投稿),但该栏目下没有符合条件的文章。
  • 原因3: 缩略图问题,如果使用了 att='1' 但文章没有上传缩略图,则该文章不会被调用。

问题3:时间格式不对?

  • 解决方案: 确保使用了正确的函数,如 function="MyDate('Y-m-d', @me)",如果需要其他格式,修改 MyDate 里的参数即可,'Y-m-d H:i:s'

希望这份详细的指南能帮助你完全掌握 DedeCMS 的文章列表标签!

-- 展开阅读全文 --
头像
dede图集内容如何正确调用?
« 上一篇 今天
哪里能免费下载正版C语言程序设计PDF?
下一篇 » 今天

相关文章

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