{dede:field} 和 {dede:global}
调用栏目名主要依赖两个核心标签:

{dede:field}:主要用于在列表页或内容页中,获取当前栏目的信息。{dede:global}:主要用于在首页或其他地方,获取指定ID的栏目信息。
在列表页或内容页调用当前栏目名 (最常用)
这是最简单、最常见的情况,你正在一个栏目列表页(list_article.htm)或文章内容页(article_article.htm),想获取这个页面所属栏目的名称。
使用标签: {dede:field name='typename'/}
示例代码:
在列表页模板(list_article.htm)中,可以这样用:
<h1>您正在浏览:{dede:field name='typename'/}</h1>
<ul>
{dede:list pagesize='10'}
<li>
<a href="[field:arcurl/]">[field:title/]</a>
<span>[field:pubdate function="MyDate('Y-m-d', @me)"/]</span>
</li>
{/dede:list}
</ul>
效果: 如果这个列表页是“技术分享”栏目,页面标题就会显示“您正在浏览:技术分享”。

在首页或其他页面调用指定ID的栏目名
如果你想在首页、首页的某个特定区块,或者一个自定义的静态页面中,调用一个已知ID的栏目名称。
使用标签: {dede:global name='itemname'/} 或 {dede:global name='typename'/}
示例代码:
假设“公司简介”栏目的ID是 1,你想在首页调用它。
-
方法A (推荐,更灵活): 使用SQL标签直接查询,这是最可控的方式。
{dede:sql sql="SELECT typename FROM dede_arctype WHERE id=1"} <h2>栏目名称是:[field:typename/]</h2> {/dede:sql} -
方法B (在特定场景下使用): 如果这个栏目是你的网站的主导航,并且你确定它的ID,也可以使用
global标签,但不如SQL方法灵活。<!-- 假设ID为1的栏目是你想调用的 --> {dede:global name='itemname'/} <!-- 或者 --> {dede:global name='typename'/}注意:
global标签的值通常在特定上下文中(如频道页)才有效,直接指定ID不一定成功。强烈推荐使用方法A的SQL标签。
调用指定父栏目下的所有子栏目名称
这是一个非常实用的需求,比如在首页做一个“产品中心”板块,并列出其下的所有产品子栏目。
使用标签: {dede:channel}
示例代码:
假设“产品中心”栏目的ID是 5,你想调用它所有的一级子栏目。
<h2>产品中心</h2>
<ul>
{dede:channel type='son' typeid='5'}
<li>
<a href="[field:typeurl/]">[field:typename/]</a>
</li>
{/dede:channel}
</ul>
参数说明:
typeid='5':指定父栏目的ID。type='son':表示调用该栏目ID下的直接子栏目(一级栏目)。[field:typeurl/]:调用栏目的链接地址。[field:typename/]:调用栏目的名称。
调用指定顶级栏目(父栏目)的名称
你在一篇文章里,想获取这篇文章所属栏目的顶级父栏目的名称,文章在“前端开发/JavaScript”下,你想获取“前端开发”这个栏目的名。
使用标签: {dede:field name='toptypename'/}
示例代码:页模板(article_article.htm)中:
<p>文章所属的顶级分类是:<strong>{dede:field name='toptypename'/}</strong></p>
<p>文章所属的当前分类是:<strong>{dede:field name='typename'/}</strong></p>
效果: 如果文章在“技术分享/前端开发/JavaScript”栏目下,
{dede:field name='toptypename'/}会显示 “技术分享”。{dede:field name='typename'/}会显示 “JavaScript”。
总结与对比
| 需求场景 | 推荐标签 | 示例代码 | 说明 |
|---|---|---|---|
| 在列表/内容页获取当前栏目名 | {dede:field name='typename'} |
{dede:field name='typename'/} |
最常用,直接获取当前页面对应的栏目名。 |
| 在首页调用指定ID的栏目名 | {dede:sql} |
{dede:sql sql="SELECT typename FROM dede_arctype WHERE id=1"}[field:typename/]{/dede:sql} |
最灵活、最可靠的方法,不受页面上下文限制。 |
| 调用指定父栏目的所有子栏目 | {dede:channel} |
{dede:channel type='son' typeid='5'}[field:typename/]{/dede:channel} |
适用于制作导航、产品展示等区块。 |
希望这些方法能帮助你解决在DedeCMS中调用指定栏目名的问题!
