list 标签简介
list 标签是织梦CMS中用于在列表页(栏目页、首页等)调用文章列表的主要标签,它的作用是查询数据库,并将符合条件(如栏目ID、关键词、时间范围等)的文章以列表的形式展示出来。

list 标签的基本语法结构如下:
{dede:list pagesize='10'}
<a href='[field:arcurl/]'>[field:title/]</a>
<span>[field:pubdate function="MyDate('Y-m-d', @me)"/]</span>
{/dede:list}
{dede:list}: 开始标签,用于定义列表查询的开始。pagesize='10': 这是一个常用属性,表示每页显示10条文章。[field:xxx/]: 这是列表内部使用的字段标签,用于显示文章的特定信息,如标题、链接、发布时间等。{/dede:list}: 结束标签。
typeid 属性详解
typeid 是 list 标签中最重要、最常用的属性之一,它用来指定要调用哪个栏目的文章。
typeid 的作用
typeid 属性告诉织梦CMS:“请去数据库中查询 typeid 所指定的栏目(及其子栏目)下的所有文章,然后以列表形式展示出来。”
typeid 的语法
typeid 的值就是栏目的ID,你需要在织梦后台的“栏目管理”中找到你想要调用的栏目,并记下它的ID。

{dede:list typeid='栏目ID' pagesize='10'}
<!-- 列表内容 -->
{/dede:list}
示例:
假设你在后台“栏目管理”中,有一个名为“技术分享”的栏目,它的ID是 2,你想在首页调用这个栏目的文章列表,代码可以这样写:
{dede:list typeid='2' pagesize='5'}
<li>
<span class="title"><a href="[field:arcurl/]" title="[field:title/]">[field:title/]</a></span>
<span class="date">[field:pubdate function="MyDate('Y-m-d', @me)"/]</span>
</li>
{/dede:list}
这段代码就会从ID为 2 的“技术分享”栏目中,调用最新的5篇文章,并以 <li> 列表的形式展示出来。
typeid 的几种常见用法
typeid 的值不仅仅可以是一个数字,还可以是多种形式,以实现不同的调用效果。
调用单个栏目
这是最基础的用法,直接指定一个栏目ID。
{dede:list typeid='1' pagesize='10'}
...
{/dede:list}
效果: 只调用ID为 1 的栏目下的文章。
调用多个指定栏目
如果想同时调用多个不同栏目的文章,可以用英文逗号 将它们的ID隔开。
{dede:list typeid='1,3,5' pagesize='10'}
...
{/dede:list}
效果: 同时调用ID为 1、3、5 的这三个栏目下的所有文章,并混合在一起展示。
调用指定栏目及其所有子栏目(常用)
这是 typeid 一个非常强大的功能,如果你想让列表页不仅显示当前栏目的文章,还要显示其所有下级栏目的文章,可以在栏目ID后面加上 。
{dede:list typeid='2,' pagesize='10'}
...
{/dede:list}
效果:
- 假设ID为
2的栏目是“产品中心”。 - “产品中心”下有“产品A”(ID=3)、“产品B”(ID=4)两个子栏目。
typeid='2,'就会调用“产品中心”、“产品A”、“产品B”这三个栏目下的所有文章。
注意: 逗号 必须紧跟在栏目ID后面,不能有空格,这个功能在制作产品分类、新闻资讯等有层级关系的栏目列表时非常有用。
调用顶级栏目
如果你想调用网站所有顶级栏目(即没有父级栏目的栏目)下的文章,可以使用 top。
{dede:list typeid='top' pagesize='10'}
...
{/dede:list}
效果: 调用所有顶级栏目下的文章,如果你的网站有“公司新闻”、“技术分享”、“关于我们”等顶级栏目,这个标签就会把这三个栏目下的文章都调出来。
调用当前栏目(动态获取)
在列表模板(list_栏目ID.htm)文件中,typeid 属性可以省略,织梦会自动获取当前页面对应的栏目ID。
你正在编辑 list_2.htm 文件(这是ID为 2 的栏目列表页模板),你可以在模板里这样写:
{dede:list pagesize='10'}
...
{/dede:list}
效果: 这个 list 标签会自动调用ID为 2 的栏目下的文章,这是制作栏目列表页最标准、最推荐的方式。
list 标签的其他常用属性
typeid 决定了“从哪里取数据”,而其他属性则决定了“如何取数据”和“如何展示数据”。
| 属性名 | 说明 | 示例 |
|---|---|---|
typeid |
指定栏目ID | typeid='2' |
pagesize |
每页显示的文章数量 | pagesize='10' |
infolen |
内容简介长度 | infolen='120' |
orderway |
排序方式,desc为降序(默认),asc为升序 |
orderway='asc' |
keyword |
按关键词筛选文章 | keyword='织梦,dedecms' |
channelid |
指定模型ID,1为文章模型(默认),2为图集模型等 |
channelid='1' |
limit |
限制记录起始和结束位置,如 limit='0,10' 表示从第1条开始取10条 |
limit='0,5' |
综合示例:
调用ID为 2 的栏目及其子栏目的文章,按发布时间倒序排列,每页显示8条,标题长度限制在30个汉字。
{dede:list typeid='2,' pagesize='8' titlelen='30' orderway='desc'}
<div class="list-item">
<h2><a href="[field:arcurl/]" title="[field:title/]">[field:title/]</a></h2>
<p class="info">作者:[field:writer/] 时间:[field:pubdate function="MyDate('Y-m-d', @me)"/] 点击:[field:click/]</p>
<p class="summary">[field:info/]...</p>
</div>
{/dede:list}
常见问题与注意事项
-
找不到栏目ID? 登录织梦后台,进入【栏目管理】,将鼠标悬停在你想要调用的栏目名称上,浏览器状态栏或链接中会显示
cid=数字,这个数字就是栏目ID。 -
typeid和channelid的区别?typeid:指定栏目,决定文章的分类。channelid:指定模型,决定文章的类型(文章、图集、软件等),默认channelid='1'是文章模型,如果你想调用一个图集栏目的图片列表,就需要设置channelid='2'。
-
为什么设置了
typeid还没有内容?- 检查栏目ID是否正确。
- 检查该栏目及其子栏目下是否已经发布了文章。
- 检查文章是否在“仅动态”或“仅静态”模式下,并且已经生成。
- 检查模板中
[field:xxx/]的字段名称是否写错。
-
首页如何调用指定栏目? 在首页模板(
index.htm)中,使用list标签并明确指定typeid即可。{dede:list typeid='1' pagesize='5'} ... {/dede:list}
typeid 是织梦 list 标签的灵魂,它精准地控制了数据来源,掌握 typeid 的各种用法(单个、多个、包含子栏目、顶级栏目)是高效使用织梦进行网站开发的基础,结合 pagesize、titlelen、orderway 等属性,你就可以灵活地构建出各种复杂的列表页面。
