dede arclist标签怎么用?参数有哪些?

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

arclist 标签,顾名思义,是“文章列表”的缩写,它的主要功能是从数据库中提取符合条件的文章、图集等文档,并以列表的形式展示在页面上,它是 DedeCMS 中使用频率最高的标签之一,几乎无处不在,比如首页、列表页、频道页等。

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

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:title/]),这部分是用来定义列表项的显示样式的。

核心属性详解

arclist 的强大之处在于其丰富的属性,通过组合这些属性,可以实现各种复杂的需求。

基础筛选属性

属性名 说明 示例
typeid 指定栏目ID,获取特定栏目下的文章,多个ID用逗号 隔开。 typeid='1,3,5'
row 获取记录数,即显示多少条文章。 row='10'
col 分列显示,将列表项分几列显示,通常配合 tablewidth 使用。 col='2'
infolen 摘要长度,截取文章摘要(如 description)的字符数。 infolen='120'
orderby 排序方式,按什么字段排序,常用值:pubdate (发布时间)、click (点击量)、id (文章ID)、sortrank (权重)。 orderby='pubdate'
orderway 排序顺序,配合 orderby 使用。desc 为降序(默认),asc 为升序。 orderway='desc'

示例:获取栏目ID为1下的最新10篇文章,标题显示30个字符。

{dede:arclist typeid='1' row='10' titlelen='30' orderby='pubdate'}
    <li><a href="[field:arcurl/]">[field:title/]</a></li>
{/dede:arclist}

高级筛选属性

属性名 说明 示例
idlist 指定文章ID列表,直接获取指定ID的文章,会忽略 typeid,多个ID用逗号隔开。 idlist='100,101,102'
channelid 指定模型ID,用于获取不同频道(如文章、图集、软件)的内容,默认为1(文章模型)。 channelid='2' (获取图集)
limit 记录范围,格式为 起始位置,记录数limit='0,5' 表示从第0条开始,取5条。 limit='5,10' (显示第6到15条)
flag 特定属性文章,获取带有特定属性的文章。h (头条)、c (推荐)、p (图片)、f (幻灯),多个用 隔开。 flag='h,c' (获取头条和推荐文章)
noflag 排除特定属性文章,与 flag 相反。 noflag='h' (获取非头条文章)
subday 指定天数内,获取指定天数内发布的文章。subday='30' 表示获取30天内发布的文章。 subday='7' (获取一周内发布的文章)
keyword 关键字搜索或关键词包含指定字符串的文章。 keyword='DedeCMS'
att 特定附件,获取带有附件的文章。 att='1' (有附件)

示例:获取栏目ID为2下的所有头条文章。

dede arclist标签
(图片来源网络,侵删)
{dede:arclist typeid='2' flag='h' row='5'}
    <div class="headline">
        <a href="[field:arcurl/]"><img src="[field:picname/]" alt="[field:title/]" /></a>
        <a href="[field:arcurl/]">[field:title/]</a>
    </div>
{/dede:arclist}

样式与输出控制属性

属性名 说明 示例
template 指定列表模板,可以调用一个外部模板文件来渲染列表,而不是直接在当前位置写HTML。 template='list_special.htm'
innertext ,这个属性会覆盖标签体内的所有内容,它定义了每个列表项的HTML结构。 innertext='<li><a href="[field:arcurl/]">[field:title/]</a></li>'
aidlist idlistidlist 是更标准的写法。 aidlist='100,101'
channel channelidchannelid 是更标准的写法。 channel='1'
listtype 列表类型list (默认,普通列表)、commend (推荐列表)。 listtype='commend'
ismember 会员权限0 (所有)、1 (仅会员)、-1 (仅非会员)。 ismember='1'

内部字段(循环体内的变量)

{dede:arclist}{/dede:arclist} 之间,可以使用 [field:xxx/] 来调用当前文章的各个字段信息。

字段名 说明 示例
[field:title/] [field:title/]
[field:arcurl/] 文章链接 <a href="[field:arcurl/]">
[field:pubdate/] 发布时间(时间戳格式) [field:pubdate function="MyDate('Y-m-d',@me)"/]
[field:description/] 文章摘要 [field:description/]
[field:picname/] 文章首图(如果有) <img src="[field:picname/]" />
[field:click/] 文章点击量 [field:click/]
[field:id/] 文章ID [field:id/]
[field:typename/] 文章所在栏目名称 [field:typename/]
[field:typeurl/] 文章所在栏目链接 [field:typeurl/]
[field:litpic/] [field:picname/],缩略图 [field:litpic/]
[field:shorttitle/] [field:shorttitle/]

function 修饰符: function 用于对字段值进行二次处理,最常用的就是日期格式化。 MyDate('Y-m-d', @me) 的含义是:

  • MyDate: DedeCMS 的一个内置函数。
  • 'Y-m-d': 日期格式,Y代表四位年份,m代表月份,d代表日期。
  • @me: 代表当前字段的原始值(这里是时间戳)。

常用实例

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

<div class="news-list">
    <h3>最新文章</h3>
    <ul>
        {dede:arclist row='8' titlelen='40' 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>
</div>

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

<div class="pic-list">
    {dede:arclist row='4' titlelen='20' orderby='pubdate' imgwidth='150' imgheight='100'}
        <div class="pic-item">
            <a href="[field:arcurl/]">
                <img src="[field:picname/]" alt="[field:title/]" width="150" height="100" />
                <span>[field:title/]</span>
            </a>
        </div>
    {/dede:arclist}
</div>

注意imgwidthimgheight 属性需要配合 DedeCMS 的自动缩略图功能使用,并且文章需要有图片。

实例3:调用指定子栏目的文章

假设当前栏目ID是 5,要调用其所有一级子栏目下的文章。

{dede:arclist typeid='sonof5' row='10' titlelen='30'}
    ...
{/dede:arclist}

typeid='sonof5' 这种写法是动态获取ID为5的子栏目,更推荐的方式是直接在后台获取到子栏目的ID,然后写死,如 typeid='6,7,8'


list 标签的区别

初学者经常混淆 arclistlist 标签,这里简单区分一下:

特性 arclist (文章列表) list (列表页)
使用位置 任意位置,如首页、栏目页、文章页等。 仅在列表页模板 (list_*.htm) 中使用。
数据范围 灵活指定,可以通过 typeid, idlist 等指定任意栏目或文章。 固定范围,默认显示当前栏目及其子栏目的文章。
核心功能 调用、聚合,从不同地方抓取数据展示。 展示、分页,用于展示一个栏目的所有文章并自动分页。
分页 不支持,需要自己用JS或PHP实现。 支持,内置分页功能,{dede:pagelist/}

简单记忆:

  • 想在首页、侧边栏等地方调用某个或某几个栏目的文章,用 arclist
  • 想制作一个栏目列表页,展示该栏目下所有文章并分页,用 list

arclist 是 DedeCMS 的瑞士军刀,掌握它是熟练使用 DedeCMS 的关键,你需要做的:

  1. 理解基本结构{dede:arclist}...{/dede:arclist}
  2. 熟悉核心属性:特别是 typeid, row, orderby, flag 等,知道它们的作用。
  3. 掌握内部字段:知道如何用 [field:title/], [field:arcurl/] 等获取文章信息。
  4. 学会使用 function:特别是日期格式化 MyDate()
  5. 区分 arclistlist:在正确的场景使用正确的标签。

多加练习,尝试组合不同的属性和字段,你就能制作出各种复杂的列表效果。

-- 展开阅读全文 --
头像
织梦 没有图片提示信息
« 上一篇 02-03
织梦模板FTP上传步骤是怎样的?
下一篇 » 02-03

相关文章

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

目录[+]