织梦list标签typeid参数如何正确使用?

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

list 标签简介

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

织梦list标签 typeid
(图片来源网络,侵删)

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 属性详解

typeidlist 标签中最重要、最常用的属性之一,它用来指定要调用哪个栏目的文章

typeid 的作用

typeid 属性告诉织梦CMS:“请去数据库中查询 typeid 所指定的栏目(及其子栏目)下的所有文章,然后以列表形式展示出来。”

typeid 的语法

typeid 的值就是栏目的ID,你需要在织梦后台的“栏目管理”中找到你想要调用的栏目,并记下它的ID。

织梦list标签 typeid
(图片来源网络,侵删)
{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为 135 的这三个栏目下的所有文章,并混合在一起展示。

调用指定栏目及其所有子栏目(常用)

这是 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/] &nbsp;&nbsp; 时间:[field:pubdate function="MyDate('Y-m-d', @me)"/] &nbsp;&nbsp; 点击:[field:click/]</p>
        <p class="summary">[field:info/]...</p>
    </div>
{/dede:list}

常见问题与注意事项

  1. 找不到栏目ID? 登录织梦后台,进入【栏目管理】,将鼠标悬停在你想要调用的栏目名称上,浏览器状态栏或链接中会显示 cid=数字,这个数字就是栏目ID。

  2. typeidchannelid 的区别?

    • typeid:指定栏目,决定文章的分类。
    • channelid:指定模型,决定文章的类型(文章、图集、软件等),默认 channelid='1' 是文章模型,如果你想调用一个图集栏目的图片列表,就需要设置 channelid='2'
  3. 为什么设置了 typeid 还没有内容?

    • 检查栏目ID是否正确。
    • 检查该栏目及其子栏目下是否已经发布了文章。
    • 检查文章是否在“仅动态”或“仅静态”模式下,并且已经生成。
    • 检查模板中 [field:xxx/] 的字段名称是否写错。
  4. 首页如何调用指定栏目? 在首页模板(index.htm)中,使用 list 标签并明确指定 typeid 即可。

    {dede:list typeid='1' pagesize='5'}
        ...
    {/dede:list}

typeid 是织梦 list 标签的灵魂,它精准地控制了数据来源,掌握 typeid 的各种用法(单个、多个、包含子栏目、顶级栏目)是高效使用织梦进行网站开发的基础,结合 pagesizetitlelenorderway 等属性,你就可以灵活地构建出各种复杂的列表页面。

-- 展开阅读全文 --
头像
printf如何正确输出short类型变量?
« 上一篇 2025-12-17
htaccess织梦伪静态规则如何配置?
下一篇 » 2025-12-17

相关文章

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

目录[+]