typelink
这是最直接、最标准的标签,专门用于获取栏目的完整链接地址。

基本用法
在模板文件(如 list_article.htm, index.htm 等)中,直接使用 {dede:field name='typelink'/} 即可。
适用场景:
- *在列表页 (`list_.htm`) 中**:获取当前栏目自身的链接。
- *在文章页 (`article_.htm`) 中**:获取该文章所属栏目的链接。
- 在首页或其他页面中,配合栏目循环:获取每个栏目的链接。
示例:
在栏目列表页 (list_article.htm) 中,通常这样使用:
<a href="{dede:field name='typelink'/}">{dede:field name='typename'/}</a>
这段代码会生成一个指向当前栏目列表页的链接,链接文本就是栏目的名称。

在首页或内容页循环调用所有栏目及其链接
这是最常见的应用场景之一,你需要在首页或其他模板中,遍历所有一级栏目,并显示每个栏目的名称和链接。
使用 channel 标签(推荐)
channel 标签是专门用于调用栏目的,功能强大且灵活。
基本语法:
{dede:channel type='top' row='10'}
<a href="[field:typelink/]">[field:typename/]</a>
{/dede:channel}
参数说明:

type='top':表示只调用顶级栏目,这是最常用的参数。row='10':表示调用的栏目数量,默认是 8。typeid='0':指定调用某个栏目的子栏目,typeid='0'表示从根目录开始。reid='0':与typeid类似,指定父栏目的 ID。
示例:在首页 (index.htm) 中调用所有顶级栏目
<div class="main-nav">
<ul>
{dede:channel type='top' row='8'}
<li><a href="[field:typelink/]" title="[field:typename/]">[field:typename/]</a></li>
{/dede:channel}
</ul>
</div>
如何获取二级栏目?
你可以嵌套使用 基本语法: 如果你在模板中使用了 核心函数: 这个函数需要一个参数,即栏目的 ID ( 示例:
假设你知道一个栏目的 ID 是 这段代码会直接输出 ID 为 5 的栏目的完整 URL 地址。 希望这份详细的解答能帮助您在 DedeCMS 开发中灵活地调用栏目 URL!channel
{dede:channel type='top' row='8'}
<dl>
<dt><a href="[field:typelink/]">[field:typename/]</a></dt>
<dd>
{dede:channel type='son' typeid='[field:id]'}
<a href="[field:typelink/]">[field:typename/]</a>
{/dede:channel}
</dd>
</dl>
{/dede:channel}
typeid='[field:id]':这是关键,它让内层的 channel 标签能够获取到外层循环中当前栏目的 ID,从而调用其所有子栏目。使用
arclist
arclist 主要是用来调用文章列表的,但它也可以用来调用栏目信息,尤其是在需要将栏目和最新的文章一起显示时。{dede:arclist row='10' channelid='1'}
<a href="[field:typelink/]">[field:typename/]</a>
{/dede:arclist}
channelid='1':这里的 channelid 指的是“栏目模型”的 ID,而不是具体某个栏目的 ID,默认的文章模型 ID 是 1,这个方法不如 channel 标签直观,不推荐单纯用于获取栏目列表。
在自定义函数或PHP代码中获取栏目链接
{dede:php} 标签编写自定义 PHP 代码,或者开发了插件,需要通过 PHP 代码来获取栏目链接。GetOneTypeUrl()typeid)。5,想在模板中通过 PHP 代码获取它的链接。{dede:php}
$typeid = 5; // 目标栏目的ID
$typeUrl = GetOneTypeUrl($typeid);
echo $typeUrl;
{/dede:php}
总结与对比
标签/方法
适用场景
优点
缺点
{dede:field name='typelink'/}在列表页、文章页等获取当前栏目的链接。
简单直接,语义清晰。
只能获取当前上下文的栏目,无法循环调用其他栏目。
{dede:channel}在首页、列表页等循环调用一个或多个栏目及其链接。
功能强大,支持顶级栏目、子栏目等多种调用方式,是标准的栏目循环标签。
语法比
field 标签稍复杂。
GetOneTypeUrl()在PHP代码块中根据栏目 ID 动态获取链接。
灵活性最高,适用于复杂逻辑和二次开发。
需要编写 PHP 代码,对非开发者不友好。
最佳实践建议
{dede:field name='typelink'/}。{dede:channel type='top'...}。{dede:php} 结合 GetOneTypeUrl() 函数。
