织梦3个栏目图片如何调用?

99ANYc3cd6
预计阅读时长 14 分钟
位置: 首页 织梦建站 正文
  • 我们想调用 栏目ID分别为 1, 2, 3 的栏目图片。
  • 我们想在首页的某个位置显示这3个栏目的缩略图和链接。

使用 channelartlist 标签(最推荐、最灵活)

这是织梦官方提供的、用于调用栏目及其内容列表的专用标签,功能强大且易于使用,它非常适合一次性调用多个指定栏目。

织梦3个栏目图片调用
(图片来源网络,侵删)

标签结构: {channelartlist typeid='栏目ID1,栏目ID2,栏目ID3'} {type} 标签对 {/channelartlist}

具体步骤和代码:

  1. 在你的首页模板文件(通常是 /templets/default/index.htm)中,找到你想要放置栏目图片的位置。

  2. 插入以下代码:

    织梦3个栏目图片调用
    (图片来源网络,侵删)
<!-- 调用栏目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'

织梦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,因为它最直接、最安全,也最符合织梦的设计思想。

-- 展开阅读全文 --
头像
1小时真能学会C语言51单片机吗?
« 上一篇 03-06
织梦移动端不更新,如何解决?
下一篇 » 03-06

相关文章

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

目录[+]