Dede列表页如何调用二级栏目?附标签代码

99ANYc3cd6
预计阅读时长 15 分钟
位置: 首页 DEDE建站 正文

下面我将为你详细讲解几种常用的方法,并提供完整的代码示例和说明。

dede 列表二级栏目调用
(图片来源网络,侵删)

核心标签:{dede:channelartlist}

{dede:channelartlist} 是专门用来调用栏目及其子栏目的标签,它的核心用法是:

  1. 指定一级栏目:通过 typeid 属性指定你要调用哪个一级栏目。
  2. 循环一级栏目:标签本身会循环输出指定的一级栏目。
  3. 在内部调用二级栏目:在 {dede:channelartlist} 的循环体内,使用 {dede:type} 标签来调用当前一级栏目下的所有二级子栏目。

调用指定一级栏目下的所有二级栏目

这是最常用、最标准的方法,假设你的网站有一个一级栏目“新闻中心”,其ID是 1,你想调用它下面的所有二级栏目(如“国内新闻”、“国际新闻”、“科技新闻”)。

模板代码示例

{dede:channelartlist typeid='1'}
    <!-- 循环输出一级栏目本身 -->
    <h2>
        <a href="{dede:field name='typeurl'/}">{dede:field name='typename'/}</a>
    </h2>
    <!-- 开始循环输出当前一级栏目下的所有二级栏目 -->
    <ul>
        {dede:type}
            <li>
                <a href="[field:typeurl/]">[field:typename/]</a>
            </li>
        {/dede:type}
    </ul>
{/dede:channelartlist}

代码详解

  1. {dede:channelartlist typeid='1'}

    • typeid='1':这是关键!它告诉织梦,我们只处理ID为 1 的这个一级栏目及其所有子栏目,请将 1 替换为你自己的一级栏目ID。
    • 这个标签会循环一次,因为它只指定了一个栏目。
  2. <h2><a href="{dede:field name='typeurl'/}">{dede:field name='typename'/}</a></h2>

    dede 列表二级栏目调用
    (图片来源网络,侵删)
    • channelartlist 标签内部,{dede:field} 用于获取当前一级栏目的信息。
    • name='typeurl':获取当前一级栏目的链接地址。
    • name='typename':获取当前一级栏目的名称。
  3. {dede:type}...{/dede:type}

    • 这个标签嵌套在 channelartlist 内部,专门用来获取当前一级栏目下的所有二级子栏目
    • 它会自动循环输出所有符合条件的二级栏目。
  4. [field:typeurl/][field:typename/]

    • {dede:type} 标签内部,我们使用简化的写法 [field:...] 来获取当前二级栏目的链接和名称。

调用多个一级栏目及其各自的二级栏目

如果你想在同一个列表页上,同时显示“新闻中心”、“产品中心”等多个一级栏目,并且每个一级栏目下面都跟着它的二级子栏目。

模板代码示例

{dede:channelartlist typeid='1,3'}
    <!-- 循环输出每一个指定的一级栏目 -->
    <div class="main-category">
        <h2>
            <a href="{dede:field name='typeurl'/}">{dede:field name='typename'/}</a>
        </h2>
        <!-- 开始循环输出当前一级栏目下的所有二级栏目 -->
        <ul class="sub-category">
            {dede:type}
                <li>
                    <a href="[field:typeurl/]">[field:typename/]</a>
                </li>
            {/dede:type}
        </ul>
    </div>
{/dede:channelartlist}

代码详解

  • {dede:channelartlist typeid='1,3'}
    • typeid='1,3':这里我们用逗号分隔了两个一级栏目的ID(例如ID为1的“新闻中心”和ID为3的“产品中心”)。
    • channelartlist 标签会循环两次,第一次处理ID为1的栏目,第二次处理ID为3的栏目,每次循环都会执行一次内部的 {dede:type} 来调用各自的子栏目。

调用当前栏目所在顶级栏目下的所有二级栏目

这是一个更灵活的用法,适用于列表页模板(list_article.htm),无论你访问的是哪个二级栏目(国内新闻”),它都能自动找到它所属的一级栏目(“新闻中心”),并调用“新闻中心”下的所有二级栏目。

dede 列表二级栏目调用
(图片来源网络,侵删)

模板代码示例

{dede:channelartlist typeid='top'}
    <!-- 循环输出当前栏目所属的顶级栏目 -->
    <h2>
        <a href="{dede:field name='typeurl'/}">{dede:field name='typename'/}</a>
    </h2>
    <!-- 调用该顶级栏目下的所有二级栏目 -->
    <ul>
        {dede:type}
            <li>
                <a href="[field:typeurl/]">[field:typename/]</a>
            </li>
        {/dede:type}
    </ul>
{/dede:channelartlist}

代码详解

  • {dede:channelartlist typeid='top'}
    • typeid='top' 是一个神奇的值,它表示“获取当前栏目所在的顶级栏目”。
    • 如果当前栏目是二级栏目,typeid='top' 就会自动定位到它的一级栏目。
    • 如果当前栏目就是一级栏目,typeid='top' 就代表它自己。
    • 这样,无论你在哪个子栏目页,都能正确地调用出兄弟栏目。

重要补充:获取栏目ID的方法

如果你不确定某个栏目的ID是多少,可以通过以下方法找到:

  1. 后台查看:登录DedeCMS后台,进入“栏目管理” -> “栏目管理”,鼠标移动到目标栏目名称上,浏览器左下角状态栏会显示该栏目的编辑链接,如 dede/catalog_add.php?cid=1,其中的 cid=1 就是它的ID。
  2. URL查看:在网站前台,点击某个栏目,观察浏览器地址栏的URL,通常是 你的域名/plus/list.php?tid=1,其中的 tid=1 就是它的ID。
需求场景 核心标签 typeid 属性值 说明
调用指定一级栏目的所有子栏目 {dede:channelartlist} typeid='1' (具体ID) 最常用,明确指定父栏目。
调用多个一级栏目的所有子栏目 {dede:channelartlist} typeid='1,3' (多个ID,逗号隔开) 适用于同时展示多个分类模块。
调用当前栏目所在顶级栏目的子栏目 {dede:channelartlist} typeid='top' 最灵活,适用于列表页模板,自动适应层级。

选择最适合你需求的方法,将代码复制到你的模板文件中,并替换正确的栏目ID,即可实现二级栏目的调用。

-- 展开阅读全文 --
头像
dede如何实现循环调用一二级栏目?
« 上一篇 昨天
C语言十六进制如何转ASCII码?
下一篇 » 昨天

相关文章

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

目录[+]