织梦cms调用当前栏目url标签

当前栏目URL标签概述

在织梦CMS模板开发中,获取当前栏目(即当前页面所属栏目)的URL是一个高频需求。织梦CMS提供了多种标签来在不同页面环境中获取当前栏目的链接地址。

核心标签及使用场景

1. 栏目页模板中获取当前栏目URL

在栏目列表页模板(list_*.htm)和栏目封面模板(index_*.htm)中:

<!-- 获取当前栏目链接 -->
{dede:field.typelink/}

<!-- 获取当前栏目URL(不含文件路径前缀) -->
{dede:field.typeurl/}

<!-- 获取当前栏目的目录路径 -->
{dede:field.typedir/}

2. 文章内容页获取所属栏目URL

在文章内容页模板(article_*.htm)中:

<!-- 获取当前文章所属栏目的链接 -->
{dede:field.typelink/}

<!-- 示例:制作"返回栏目"链接 -->
<a href="{dede:field.typelink/}">返回{dede:field.typename/}栏目</a>

3. 使用 type 标签获取任意页面中的栏目URL

{dede:type} 标签可在任何模板页中获取指定栏目的URL:

<!-- 获取ID为2的栏目链接 -->
{dede:type typeid='2'}
<a href="[field:typelink/]">进入[field:typename/]</a>
{/dede:type}

<!-- 不指定typeid则获取当前栏目的链接 -->
{dede:type}
<a href="[field:typelink/]" title="[field:typename/]">
  [field:typename/]
</a>
{/dede:type}

4. 首页调用当前(任意)栏目的URL

在首页模板调用指定栏目链接:

<!-- 调用指定栏目的名称和链接 -->
{dede:channel type='top' row='10'}
<a href="[field:typelink/]">[field:typename/]</a>
{/dede:channel}

<!-- 调用子栏目 -->
{dede:channel type='son' typeid='5'}
<a href="[field:typelink/]">[field:typename/]</a>
{/dede:channel}

5. 获取栏目URL的完整路径

有时需要获取带有域名的完整URL:

<!-- 使用PHP标签组合获取完整URL -->
{dede:php}
$typeid=$refObj->TypeLink->TypeInfos['id'];
$typedir=$refObj->TypeLink->TypeInfos['typedir'];
$fullUrl=$cfg_basehost . $typedir;
echo $fullUrl;
{/dede:php}

<!-- 或者使用global标签获取域名前缀 -->
{dede:global.cfg_basehost/}{dede:field.typedir/}

6. 在循环标签中获取每篇文章的栏目URL

<!-- arclist标签中获取文章所属栏目链接 -->
{dede:arclist row='10'}
<span class="column">
  [<a href="[field:typelink/]">[field:typename/]</a>]
</span>
<a href="[field:arcurl/]">[field:title/]</a>
{/dede:arclist}

各标签的返回值对比

标签返回值示例说明
[field:typelink/]/news/相对路径链接
{dede:field.typelink/}/news/栏目页中使用
[field:typeurl/]/news/栏目URL路径
[field:typedir/]{cmspath}/news带系统路径前缀