通过指定 channelid(模型ID)来让 list 标签知道要从哪个独立模型的表里去获取数据。

下面是详细的步骤和代码示例。
第一步:获取你的独立模型的ID
这是最关键的一步,你需要知道你想要调用的那个独立模型在系统里对应的 channelid 是多少。
- 登录织梦后台。
- 进入【核心】 -> 【内容模型管理】。
- 你会看到所有你创建的模型列表,包括“文章”、“图集”、“软件”、“商品”等。
- 找到你想要调用的独立模型,图集模型”,查看它最左侧的“ID”列,这个数字就是它的
channelid。
- 文章模型:
channelid通常是1 - 图集模型:
channelid通常是2 - 软件模型:
channelid通常是3 - 商品模型:
channelid通常是4 - 你的自定义模型:需要根据你创建时分配的ID为准。
假设我们要调用一个“图集模型”,它的 channelid 是 2。
第二步:修改 list_articl.htm 模板文件
{dede:list} 标签通常在列表页模板文件中使用,默认的列表页模板是 /templets/default/list_articl.htm。

- 使用FTP或服务器文件管理器,进入你的织梦安装目录。
- 找到并打开
/templets/你的模板文件夹/list_articl.htm文件。(如果你没有自定义模板,则打开/templets/default/list_articl.htm)
第三步:在模板中使用 channelid 参数
在 list_articl.htm 文件中,找到 {dede:list} 标签,并为其添加 channelid 属性。
基础调用方法(调用指定模型的所有栏目)
这是最简单的方式,它会调用指定模型下所有栏目的内容。
代码示例:
{dede:list pagesize='10' channelid='2'}
<li>
<a href="[field:arcurl/]">[field:title/]</a>
<span>[field:pubdate function="MyDate('Y-m-d',@me)"/]</span>
</li>
{/dede:list}
<div class="dede_pages">
<ul>{dede:pagelist listitem="info,index,end,pre,next,pageno" listsize="5"/}</ul>
</div>
代码解释:

{dede:list pagesize='10' channelid='2'}pagesize='10':每页显示10条记录(可选)。channelid='2':核心参数,告诉织梦要从channelid为2的模型(即图集模型)中获取数据。
[field:arcurl/]:文章的链接地址。[field:title/]:文章的标题。[field:pubdate ...]:发布日期,这里使用了函数来格式化日期。{dede:pagelist/}:分页标签,{dede:list}必须配合它才能实现分页。
第四步:调用指定独立模型下的特定栏目
我们只想调用某个独立模型下的某个特定栏目(产品图集”栏目)下的内容,而不是所有栏目,这时,你需要结合 typeid 参数。
- 获取你目标栏目的 栏目ID(TypeID),进入【核心】 -> 【栏目管理】,找到你想要的栏目,查看其ID。
- 在
list标签中同时指定channelid和typeid。
代码示例:
假设“产品图集”栏目的 typeid 是 5,而它所属的“图集模型”的 channelid 是 2。
{dede:list pagesize='12' channelid='2' typeid='5'}
<li>
<a href="[field:arcurl/]">
<img src="[field:litpic/]" alt="[field:title/]" />
<span>[field:title/]</span>
</a>
</li>
{/dede:list}
<div class="dede_pages">
<ul>{dede:pagelist listitem="info,index,end,pre,next,pageno" listsize="5"/}</ul>
</div>
代码解释:
channelid='2':限定了数据来源是“图集模型”。typeid='5':进一步限定了数据来源是栏目ID为5的“产品图集”栏目。[field:litpic/]:独立模型特有字段,调用文章的缩略图,对于图集模型,这是封面图;对于软件模型,这是软件图标。
第五步:调用独立模型的扩展字段
独立模型最大的特点就是拥有自己的一套扩展字段(如价格、简介、品牌等),要调用这些字段,你需要在后台的【模型管理】 -> 【字段管理】中确认字段的名称(通常是英文),然后使用 [field:自定义字段名/] 的形式来调用。
示例:假设我们有一个“商品模型”(channelid=4),它有 price(价格)和 brand(品牌)两个扩展字段。
{dede:list pagesize='10' channelid='4' typeid='6'}
<div class="product-item">
<a href="[field:arcurl/]">
<img src="[field:litpic/]" alt="[field:title/]" />
</a>
<h3><a href="[field:arcurl/]">[field:title/]</a></h3>
<p class="price">价格:¥[field:price/]</p>
<p class="brand">品牌:[field:brand/]</p>
</div>
{/dede:list}
重要提示:
- 确保字段存在:
[field:price/]中的price必须是你为该模型添加过的有效字段名。 - 字段权限:如果该字段在后台设置了“仅后台可显示”,则在前台模板中可能无法调用。
常见问题与注意事项
-
分页问题:
{dede:list}必须和{dede:pagelist}配合使用才能实现分页,如果分页不显示,请检查:{dede:list}标签是否闭合。{dede:pagelist}标签是否放在{dede:list}循环之外。- 确保你调用的是列表页模板(
list_xxx.htm),而不是首页或其他页面。
-
数据为空:如果调用后列表为空,请检查:
channelid和typeid是否写错。- 该栏目下是否真的有符合条件的内容。
- 独立模型的数据表前缀是否正确(默认是
dede_)。
-
性能考虑:
{dede:list}在处理大量数据时,性能可能不如{dede:arclist},如果只是调用少量数据(比如首页调用某个独立模型的推荐内容),建议使用{dede:arclist}并配合channelid和typeid使用,它更高效。{dede:arclist}调用独立模型的示例:{dede:arclist channelid='2' typeid='5' row='8' titlelen='30'} <li> <a href="[field:arcurl/]">[field:title/]</a> </li> {/dede:arclist}
调用独立模型的核心就是 channelid 参数,记住这个参数,你就可以灵活地用 {dede:list} 标签来展示任何你想要的独立模型内容了。
