织梦新建php arclist如何调用标签?

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

arclist 标签基础语法

arclist 标签的基本结构非常简单,通常放在需要显示列表的HTML模板文件中(如 index.htm, list_article.htm 等)。

织梦 新建 php arclist
(图片来源网络,侵删)
{dede:arclist}
    <li>
        <a href="[field:arcurl/]">[field:title/]</a>
        <span>[field:pubdate function="MyDate('Y-m-d',@me)"/]</span>
    </li>
{/dede:arclist}

语法结构解析:

  1. {dede:arclist}: 这是标签的开始。
  2. 属性: 在开始标签内,可以添加各种属性来控制列表的显示内容、数量、排序等。
  3. 底层模板变量: 在 {dede:arclist}{/dede:arclist} 之间,是循环输出的单条记录内容,这里使用 [field:xxx/] 的形式来调用当前这条记录的字段。
  4. {/dede:arclist}: 这是标签的结束。

arclist 常用属性详解

要新建一个符合需求的 arclist,关键在于配置好它的属性,以下是最常用的一些属性:

控制调用数量

  • row: 设置调用文档的数量。
    • 示例: row='10' 表示调用10条文档。

设置栏目ID

  • typeid: 指定要调用的栏目ID,多个ID用英文逗号隔开。
    • 调用单个栏目: typeid='1' (调用ID为1的栏目及其所有子栏目的文章)
    • 调用多个栏目: typeid='1,3,5' (调用ID为1, 3, 5的栏目及其所有子栏目的文章)
    • 仅调用指定栏目(不包含子栏目): typeid='1' 默认包含子栏目,若要排除,需结合 nativeplacechannelid 等高级用法,或使用SQL语句,对于大多数情况,默认行为就足够了。

设置排序方式

  • sort: 按指定字段排序。
    • 常用值:
      • hot: 按点击数排序(降序)
      • pubdate: 按发布时间排序(降序)
      • click: 同 hot
      • rand: 随机排序
      • id: 按文章ID排序
  • order: 排序方式,asc (升序) 或 desc (降序)。
    • 示例: sort='pubdate' order='desc' 表示按发布时间降序排列(最新的在前)。

长度

len`: 设置标题显示的字符长度。

  • 示例: titlelen='30' 表示标题最多显示30个字符,超出部分用省略号...代替。

设置调用栏目

  • channelid: 指定模型ID来调用。
    • 常用值:
      • 1: 文章模型
      • 2: 图集模型
      • -1: 调用所有模型
    • 示例: channelid='1' 只调用文章。

设置起始位置

  • offset: 从第N条记录开始调用。
    • 示例: row='10' offset='5' 表示从第6条记录开始,共调用10条。

设置特定时间范围

  • subday: 调用指定天数内发布的文档。
    • 示例: subday='7' 表示调用最近7天内发布的文档。

控制栏目信息显示

  • type: 控制栏目名称的显示方式。
    • type='top': 只显示顶级栏目名
    • type='son': 只显示当前栏目名
    • type='self': 只显示最终栏目名(最底层的栏目)
    • type='last': 同 self

arclist 底层模板变量([field:xxx/]

这些变量用于在循环中输出每条文章的具体信息。

织梦 新建 php arclist
(图片来源网络,侵删)
变量名 说明 示例
[field:title/] <a href="[field:arcurl/]">[field:title/]</a>
[field:arcurl/] 文章链接 <a href="[field:arcurl/]">阅读全文</a>
[field:pubdate/] 发布时间(时间戳) 通常需要配合function格式化
[field:description/] 文章摘要 [field:description function='cn_substr(@me, 100)'/]
[field:click/] 点击次数 <span>点击:[field:click/]</span>
[field:litpic/] 文章缩略图 <img src="[field:litpic/]" alt="[field:title/]">
[field:typename/] 文章所属栏目名 <span>[field:typename/]</span>
[field:id/] 文章ID <span>ID: [field:id/]</span>

综合示例:新建一个“最新文章”列表

假设我们要在首页调用ID为1的栏目(新闻中心)下的10篇最新文章,标题显示30个字符,并显示发布日期和缩略图。

在后台找到对应的首页模板文件

通常是 /templets/default/index.htm

在模板中插入以下代码

织梦 新建 php arclist
(图片来源网络,侵删)
<!-- 最新文章列表开始 -->
<div class="latest-news">
    <h2>最新文章</h2>
    <ul>
        {dede:arclist 
            typeid='1' 
            row='10' 
            titlelen='30' 
            orderby='pubdate' 
            order='desc' 
            imgwidth='150' 
            imgheight='100'
        }
        <li>
            <a href="[field:arcurl/]" title="[field:title/]">
                <img src="[field:litpic/]" alt="[field:title/]" width="150" height="100">
                <h3>[field:title/]</h3>
            </a>
            <span class="date">[field:pubdate function="MyDate('Y-m-d',@me)"/]</span>
        </li>
        {/dede:arclist}
    </ul>
</div>
<!-- 最新文章列表结束 -->

代码解析:

  • typeid='1': 调用ID为1的栏目。
  • row='10': 显示10篇文章,len='30'`: 标题最多30个字符。
  • orderby='pubdate' order='desc': 按发布时间倒序排列。
  • imgwidth='150' imgheight='100': 如果文章没有缩略图,系统会自动生成一个指定尺寸的空白图片,有助于页面布局稳定。
  • [field:pubdate function="MyDate('Y-m-d',@me)"/]: 这是织梦强大的功能,对pubdate字段进行处理,调用系统自带的MyDate函数,将时间戳格式化为 年-月-日 的格式。

高级技巧与常见问题

调用指定自定义字段

如果你的文章模型有自定义字段,author (作者),可以这样调用:

{dede:arclist}
    作者:[field:author/]
{/dede:arclist}

如何排除某个栏目?

arclist 本身没有直接排除栏目的属性,通常有两种方法:

  • 方法一(推荐):使用SQL语句channel 标签或 arclist 标签中使用 sql 属性。

    {dede:arclist sql="SELECT * FROM `dede_archives` WHERE typeid NOT IN (2, 5) ORDER BY pubdate DESC LIMIT 10"}
        ...
    {/dede:arclist}

    注意:直接写SQL需要你对数据库表结构有一定了解,dede_archives 是文章主表。

  • 使用多个 typeid 如果要排除的栏目不多,可以手动列出所有你想要调用的栏目ID,用逗号隔开,从而间接排除掉未列出的ID。

列表样式错乱怎么办?

通常是因为 li 标签的浮动(float)问题导致的,请确保你的CSS代码正确处理了列表项的浮动和清除浮动。

CSS可以这样写:

.latest-news ul li {
    float: left;
    width: 200px;
    margin-right: 10px;
    list-style: none;
}
.latest-news ul li:after { /* 清除浮动 */
    content: "";
    display: block;
    clear: both;
}

希望这份详细的指南能帮助你成功在织梦中新建和使用 arclist

-- 展开阅读全文 --
头像
织梦 data not found
« 上一篇 2025-12-10
如何去除dede首页的index.html?
下一篇 » 2025-12-10

相关文章

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