在列表页(如 list_article.htm)中调取当前栏目名称
这是最常见的情况,比如在文章列表页的标题位置显示“公司新闻”或“产品中心”。

(图片来源网络,侵删)
使用标签: {dede:field.typename/}
这个标签会直接输出当前列表页所对应的栏目名称。
示例代码:
在你的列表页模板文件 list_article.htm 中,可以这样使用:

(图片来源网络,侵删)
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">{dede:field.typename/} - {dede:global.cfg_webname/}</title>
</head>
<body>
<h1>{dede:field.typename/}</h1>
<p>这里是栏目:{dede:field.typename/} 的文章列表</p>
<!-- 文章列表循环开始 -->
{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}
<!-- 文章列表循环结束 -->
<!-- 分页 -->
{dede:pagelist listsize='4'/}
</body>
</html>
说明:
{dede:field.typename/}会自动获取当前栏目的名称。{dede:global.cfg_webname/}是获取网站后台设置的网站名称,通常用作标题的后缀。
页(如 article_article.htm)中调取所属栏目名称
当你需要在文章内容页显示这篇文章属于哪个栏目时,可以使用这个方法。
使用标签: {dede:field.typeid/} 输出的是栏目ID,而 {dede:field.typename/} 同样可以直接输出栏目名称。
示例代码:
页模板文件 article_article.htm 中:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">{dede:field.title/} - {dede:field.typename/} - {dede:global.cfg_webname/}</title>
</head>
<body>
<div class="breadcrumb">
当前位置:<a href="{dede:global.cfg_cmsurl/}/">首页</a> > <a href="{dede:typelink/}">{dede:field.typename/}</a> > {dede:field.title/}
</div>
<h1>{dede:field.title/}</h1>
<p class="info">
所属栏目:<strong>{dede:field.typename/}</strong>
发布时间:{dede:field.pubdate function="MyDate('Y-m-d H:i:s',@me)"/}
</p>
<div class="content">
{dede:field.body/}
</div>
</body>
</html>
说明:页,{dede:field.typename/} 同样能正确获取到当前文章所属的栏目名称。
{dede:typelink/}是一个非常有用的标签,它会生成指向该栏目的链接,而不仅仅是文字。
使用SQL语句自由调取任意栏目名称
如果你想在非列表页、非内容页的模板中(比如首页的某个特定区块)调取一个指定ID的栏目名称,就需要使用SQL查询标签。
使用标签: {dede:sql sql="SELECT typename FROM dede_arctype WHERE id='栏目ID'"/}
示例代码:
假设你想在首页模板 index.htm 中调取ID为 5 的栏目名称。
<h2>我们推荐一个栏目:</h2>
<p>栏目名称是:{dede:sql sql="SELECT typename FROM dede_arctype WHERE id='5'"}[field:typename/]{/dede:sql}</p>
代码解析:
dede:sql:执行自定义SQL语句的标签。sql="...":里面是标准的SQL查询语句。dede_arctype:DedeCMS中存储栏目的数据表名。WHERE id='5':查询条件,指定要获取的栏目ID。请务必将'5'替换成你自己的栏目ID。[field:typename/]:在dede:sql标签内部,使用[field:字段名/]来输出SQL查询结果。
更简洁的写法(推荐):
DedeCMS提供了一个更简洁的标签来实现这个功能,推荐使用:
{dede:type typeid='5'}
[field:typename/]
{/dede:type}
代码解析:
{dede:type typeid='5'}:指定要查询的栏目ID。[field:typename/]:输出该栏目的名称。- 这种写法比直接写SQL更安全、更符合DedeCMS的标签规范。
总结与对比
| 调取场景 | 推荐标签 | 说明 |
|---|---|---|
| 列表页 | {dede:field.typename/} |
最简单直接,自动获取当前栏目。 |
| 任意位置(已知ID) | {dede:type typeid='5'}[field:typename/]{/dede:type} |
推荐方法,简洁、安全,用于调取指定ID的栏目。 |
| 任意位置(已知ID) | {dede:sql sql="..."}[field:typename/]{/dede:sql} |
功能强大,但稍显复杂,适合更复杂的SQL查询。 |
希望这些方法能帮到你!在实际使用中,最常用的就是前两种,而第三种则在制作复杂的自定义页面时非常有用。
