dede如何调用栏目连接?

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

{dede:channel}

调用栏目链接主要使用 {dede:channel} 这个循环标签,它的基本语法如下:

dede调用栏目连接
(图片来源网络,侵删)
{dede:channel type='栏目类型' row='显示数量'}
    <a href='[field:typelink/]'>[field:typename/]</a>
{/dede:channel}

下面我们来看不同场景下的具体用法。


调用顶级栏目(最常用)

这是最常见的用法,比如在网站主导航栏中调用所有的一级栏目。

标签代码:

{dede:channel type='top' row='8'}
    <li><a href="[field:typelink/]">[field:typename/]</a></li>
{/dede:channel}

参数解释:

dede调用栏目连接
(图片来源网络,侵删)
  • type='top':这是最关键的参数,表示只调用顶级栏目
  • row='8':表示调用的栏目数量,这里是8个,如果省略,默认调用所有顶级栏目。
  • [field:typelink/]:这是栏目链接的底层模板变量,它会输出当前栏目的完整 URL 地址。
  • [field:typename/]:这是栏目名称的底层模板变量,它会输出当前栏目的名称。

示例场景:网站主导航

<ul id="mainnav">
    {dede:channel type='top' row='8'}
        <li><a href="[field:typelink/]">[field:typename/]</a></li>
    {/dede:channel}
</ul>

调用指定栏目的子栏目

如果你想在某个栏目页(产品中心”)里显示它的所有子栏目(产品A”、“产品B”),可以使用 reid 参数。

前提条件: 你必须知道“产品中心”这个栏目的 ID,你可以在 DedeCMS 后台的【栏目管理】中找到并记下这个 ID。

标签代码:

dede调用栏目连接
(图片来源网络,侵删)

假设“产品中心”的栏目 ID 是 5

<h3>产品系列</h3>
<ul>
    {dede:channel type='son' reid='5'}
        <li><a href="[field:typelink/]">[field:typename/]</a></li>
    {dede:channel}
</ul>

参数解释:

  • type='son':表示调用指定栏目的子栏目
  • reid='5':这是父栏目的 ID。reid 是 "relative ID" 的缩写,表示关联的父栏目 ID。请务必将 5 替换成你自己的栏目 ID

调用当前栏目的同级栏目(兄弟栏目)

有时你可能想在当前栏目页显示与它同级的其他栏目,这需要结合 typeid 参数,typeid 通常由 {dede:field} 标签自动获取当前栏目 ID。

标签代码:

<h3>相关栏目</h3>
<ul>
    {dede:channel type='self' typeid=''}
        <li><a href="[field:typelink/]">[field:typename/]</a></li>
    {dede:channel}
</ul>

参数解释:

  • type='self':表示调用与指定栏目同级的栏目。
  • typeid='':这里留空,DedeCMS 会自动解析当前页面的栏目 ID 并填入,这是最标准的写法。

调用所有栏目(包括顶级和子级)

如果你需要一个网站地图或者全站栏目列表,可以使用 type='all'

标签代码:

<h3>全站栏目</h3>
<ul>
    {dede:channel type='all'}
        <li><a href="[field:typelink/]">[field:typename/]</a></li>
    {dede:channel}
</ul>

参数解释:

  • type='all':表示调用所有层级的栏目,从顶级栏目开始,递归显示其所有子栏目。

高级技巧与常用属性

{dede:channel} 标签还有很多有用的属性,可以让你的调用更灵活。

自定义样式(当前栏目高亮)

这是导航栏必备的功能,我们可以使用 currentstyle 属性来为当前栏目所在的链接添加一个特殊的 CSS 类。

标签代码:

<ul id="mainnav">
    {dede:channel type='top' row='8' currentstyle="<li class='active'><a href='~typelink~'>~typename~</a></li>"}
        <li><a href="[field:typelink/]">[field:typename/]</a></li>
    {dede:channel}
</ul>

参数解释:

  • currentstyle='...':这个属性用于定义当前栏目的 HTML 模板。
    • ~typelink~:是 [field:typelink/] 的简写。
    • ~typename~:是 [field:typename/] 的简写。
    • 当访问者处于某个栏目页时,{dede:channel} 会自动将当前栏目的 <li> 替换为 currentstyle 中定义的内容,你可以给这个 <li> 添加 class="active",然后在 CSS 中定义 .active 的样式。

排除指定栏目

如果你想在调用栏目时排除掉某个栏目(首页”或“关于我们”),可以使用 typeid 参数来指定要包含的栏目 ID,或者用 notypeid 来排除。

使用 typeid 包含指定栏目: 假设你只想调用 ID 为 1, 3, 5 的栏目。

{dede:channel typeid='1,3,5'}
    <a href="[field:typelink/]">[field:typename/]</a>
{/dede:channel}

使用 notypeid 排除指定栏目: 假设你有一个 ID 为 10 的栏目“内部通知”,不想在导航中显示。

{dede:channel type='top' notypeid='10'}
    <a href="[field:typelink/]">[field:typename/]</a>
{/dede:channel}

总结表格

需求 标签代码 关键参数
调用顶级栏目 {dede:channel type='top'} type='top'
调用指定栏目的子栏目 {dede:channel type='son' reid='5'} type='son', reid='父栏目ID'
调用当前栏目的同级栏目 {dede:channel type='self' typeid=''} type='self', typeid 留空自动获取
调用所有栏目 {dede:channel type='all'} type='all'
当前栏目高亮 {dede:channel ... currentstyle="<li class='active'>~typename~</li>"} currentstyle 属性

希望这份详细的指南能帮助你完全掌握在 DedeCMS 中调用栏目链接的方法!

-- 展开阅读全文 --
头像
哪里能安全下载C语言编程软件?
« 上一篇 04-10
织梦CMS建站教程从哪开始学?
下一篇 » 04-10

相关文章

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

目录[+]