- 我们想调用 栏目ID分别为 1, 2, 3 的栏目图片。
- 我们想在首页的某个位置显示这3个栏目的缩略图和链接。
使用 channelartlist 标签(最推荐、最灵活)
这是织梦官方提供的、用于调用栏目及其内容列表的专用标签,功能强大且易于使用,它非常适合一次性调用多个指定栏目。

(图片来源网络,侵删)
标签结构:
{channelartlist typeid='栏目ID1,栏目ID2,栏目ID3'}
{type} 标签对
{/channelartlist}
具体步骤和代码:
-
在你的首页模板文件(通常是
/templets/default/index.htm)中,找到你想要放置栏目图片的位置。 -
插入以下代码:
(图片来源网络,侵删)
<!-- 调用栏目ID为1, 2, 3的栏目图片 -->
{channelartlist typeid='1,2,3'}
<ul>
{type}
<li>
<!-- 栏目链接 -->
<a href="{typeurl}">
<!-- 栏目图片调用 -->
[field:picname/]
</a>
<!-- 可选:显示栏目名称 -->
<a href="{typeurl}">[field:typename/]</a>
</li>
{/type}
</ul>
{/channelartlist}
代码详解:
{channelartlist typeid='1,2,3'}:typeid='1,2,3': 这是最关键的部分,这里填写你想要调用的栏目ID,用英文逗号隔开,如果留空typeid='',则会调用所有顶级栏目。
{type}...{/type}:- 这是一个循环标签,
channelartlist会为typeid中指定的每一个栏目都执行一次{type}...{/type}之间的代码。
- 这是一个循环标签,
{typeurl}:系统变量,表示当前栏目的链接地址。
[field:picname/]:- 字段标签,用于获取当前栏目的 “栏目图片”,这个图片是在后台“栏目管理” -> “选择栏目” -> “高级选项” 中上传的。
[field:typename/]:- 字段标签,用于获取当前栏目的 “栏目名称”。
示例效果:
这段代码会生成一个无序列表,包含3个 <li> 元素,每个 <li> 里都有一个指向对应栏目的链接,链接内显示该栏目的图片和名称。
使用 dede:arclist 标签(调用栏目第一条文章的缩略图)
大家习惯用栏目下第一篇文章的缩略图作为栏目的代表图片,这时可以使用 arclist 标签,并设置 row='3' 和 typeid='1,2,3'。

(图片来源网络,侵删)
标签结构:
{dede:arclist row='3' typeid='1,2,3'}
<li>
<a href="[field:arcurl/]">[field:title/]</a>
<img src="[field:litpic/]" alt="[field:title/]">
</li>
{/dede:arclist}
具体代码:
<!-- 调用栏目ID为1, 2, 3下各一篇文章的缩略图 -->
{dede:arclist row='3' typeid='1,2,3'}
<li>
<!-- 文章链接 -->
<a href="[field:arcurl/]">
<!-- 文章缩略图调用 -->
<img src="[field:litpic/]" alt="[field:title/]">
</a>
<!-- 文章标题 -->
<a href="[field:arcurl/]">[field:title/]</a>
</li>
{/dede:arclist}
代码详解:
typeid='1,2,3': 指定只在ID为1, 2, 3的栏目中查找文章。row='3': 指定只调用3篇文章,因为我们在3个栏目中各取一篇,row设置为3。[field:litpic/]: 字段标签,用于获取文章的 “缩略图”。[field:arcurl/]: 字段标签,表示文章的链接地址。[field:title/]: 字段标签,表示文章的标题。
注意:
- 此方法调用的是文章的缩略图,而不是栏目本身设置的“栏目图片”。
- 如果某个栏目下没有文章,
arclist将不会为该栏目生成任何内容,最终可能只显示2个或1个图片。
使用 dede:sql 标签(最灵活,适合高级用户)
如果你需要更复杂的查询,或者栏目图片存储在自定义表单中,可以使用 sql 标签直接执行数据库查询。
准备工作:
织梦的栏目信息主要存储在 dede_arctype 表中,栏目图片的字段名是 picname。
具体代码:
<!-- 使用SQL直接查询栏目表 -->
{dede:sql sql='SELECT id,typename,picname FROM `dede_arctype` WHERE id IN (1,2,3) ORDER BY id ASC'}
<li>
<!-- 栏目链接 -->
<a href="[field:typelink/]">
<!-- 栏目图片调用 -->
<img src="[field:picname/]" alt="[field:typename/]">
</a>
<!-- 栏目名称 -->
<a href="[field:typelink/]">[field:typename/]</a>
</li>
{/dede:sql}
代码详解:
sql='...': 在这里编写你的SQL查询语句。SELECT id,typename,picname FROM dede_arctype: 从栏目表中选择ID、名称和图片字段。WHERE id IN (1,2,3): 筛选出ID为1, 2, 3的栏目。IN语法比 更适合多个值。ORDER BY id ASC: 按ID升序排列,确保调用顺序固定。
[field:typelink/]: 在sql标签中,织梦会自动为id字段生成一个名为typelink的链接变量,它等同于{typeurl}。
注意:
sql标签功能强大,但直接操作数据库,如果SQL语句写错,可能会导致页面报错,请确保你对织梦的表结构有一定了解。
总结与对比
| 方法 | 优点 | 缺点 | 适用场景 | |
|---|---|---|---|---|
| 方法一 | channelartlist |
官方推荐,代码简洁,逻辑清晰,专为栏目调用设计。 | 灵活性相对SQL稍弱。 | 绝大多数情况下,这是最佳选择。 |
| 方法二 | arclist |
可以调用文章缩略图,与文章列表结合方便。 | 调用的是文章图片,非栏目图片;依赖栏目下有文章。 | 想用栏目下第一篇文章的图作为代表时。 |
| 方法三 | sql |
灵活性最高,可执行任何复杂查询,不受限于系统标签。 | 代码复杂,需要懂SQL,有出错风险。 | 需要调用非标准字段或进行复杂筛选时。 |
对于你的问题“织梦3个栏目图片调用”,强烈推荐使用方法一 channelartlist,因为它最直接、最安全,也最符合织梦的设计思想。
