当前栏目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 | 带系统路径前缀 |