栏目名称标签概述
在织梦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/] 生成栏目链接,避免硬编码路径,这样即使修改了栏目目录名,链接也会自动更新。