织梦cms栏目名称标签和连接

栏目名称标签概述

在织梦CMS模板开发中,获取和显示栏目名称是最基础也是最常用的操作之一。织梦CMS提供了多套标签系统来获取栏目名称和链接,包括织梦标签{dede:channel}{dede:type} 等)和字段标签[field:typename/] 等)。

核心栏目名称字段

字段标签说明
[field:typename/]栏目名称
[field:typelink/]栏目链接地址
[field:typeurl/]栏目URL路径
[field:id/]栏目ID
[field:description/]栏目描述

1. 使用 channel 标签获取栏目名称和链接

这是最常用的导航栏目调用方式,用于获取顶级栏目或子栏目列表:

<!-- 获取所有顶级栏目的名称和链接 -->
{dede:channel type='top' row='8'}
<li><a href="[field:typelink/]">[field:typename/]</a></li>
{/dede:channel}

<!-- 获取当前栏目的子栏目 -->
{dede:channel type='son' row='10'}
<li><a href="[field:typelink/]">[field:typename/]</a></li>
{/dede:channel}

<!-- 获取指定栏目的子栏目 -->
{dede:channel type='son' typeid='2' row='10'}
<a href="[field:typelink/]">[field:typename/]</a>
{/dede:channel}

2. 使用 type 标签获取当前栏目信息

{dede:type} 标签用于获取指定栏目的信息:

<!-- 获取当前栏目的名称和链接 -->
{dede:type}
<a href="[field:typelink/]">[field:typename/]</a>
{/dede:type}

<!-- 获取指定ID栏目的名称 -->
{dede:type typeid='3'}
<h2>[field:typename/]</h2>
<a href="[field:typelink/]">进入[field:typename/]</a>
{/dede:type}

3. 使用 field 标签获取栏目页的当前栏目信息

在栏目页模板(list_*.htm)中使用:

<!-- 栏目页模板中直接获取 -->
<h1>{dede:field.typename/}</h1>
<p>栏目位置:{dede:field.position/}</p>
<p>栏目关键词:{dede:field.keywords/}</p>
<p>栏目描述:{dede:field.description/}</p>

4. 使用 SQL 标签灵活获取

当标准标签无法满足需求时,可使用 SQL 标签:

<!-- 获取所有栏目名称和链接 -->
{dede:sql sql="SELECT id,typename,typedir FROM dede_arctype WHERE reid=0 ORDER BY sortrank ASC"}
<a href="[field:typedir/]">[field:typename/]</a>
{/dede:sql}

5. PHP标签自定义获取

<!-- 使用runphp实现更灵活的控制 -->
{dede:php}
$dsql->SetQuery("SELECT id,typename,typedir FROM dede_arctype WHERE reid=0 LIMIT 10");
$dsql->Execute();
while($row=$dsql->GetArray()){
    echo '<a href="'.$row['typedir'].'">'.$row['typename'].'</a> ';
}
{/dede:php}

栏目链接的几种形式

链接形式说明
/news/静态目录形式
/news/index.html静态首页文件
/plus/list.php?tid=2动态链接形式
最佳实践:在模板中始终使用 [field:typelink/] 生成栏目链接,避免硬编码路径,这样即使修改了栏目目录名,链接也会自动更新。