使用全局变量 $typelink (最推荐、最简洁)
这是在列表页获取当前栏目信息最简单、最直接的方法,DedeCMS在列表页加载时,已经自动将当前栏目的核心信息存入了全局变量 $typelink 中。

(图片来源网络,侵删)
$typelink 是一个包含了当前栏目所有信息的数组,你可以直接调用它。
常用调用示例:
调用当前栏目名称
<h1>{dede:field name='typename'/}</h1>
- 说明:这是最常用的标签,等同于
{$typelink['typename']},直接在列表页模板中使用即可。
调用当前栏目链接 (URL)
<a href="{dede:field name='typeurl'/}">返回{dede:field name='typename'/}</a>
- 说明:
{dede:field name='typeurl'/}等同于{$typelink['typeurl']},可以获取到当前栏目的完整链接地址。
调用当前栏目ID

(图片来源网络,侵删)
<input type="hidden" name="typeid" value="{dede:field name='id'/}">
- 说明:在需要提交表单或者进行一些JS操作时,获取当前栏目的ID非常有用。
{dede:field name='id'/}等同于{$typelink['id']}。
调用当前栏目描述
<meta name="description" content="{dede:field name='description' function='html2text(@me)'/}">
- 说明:
{dede:field name='description'/}获取的是后台设置的栏目描述(支持HTML),为了确保在SEO描述等地方正常显示,通常会用function='html2text(@me)'函数将HTML标签去掉,只保留纯文本。
调用当前栏目关键词
<meta name="keywords" content="{dede:field name='keywords'/}">
调用当前栏目内容(详细描述)
<div class="category-content">
{dede:field name='content' function='htmlspecialchars_decode(@me)'/}
</div>
- 说明:
{dede:field name='content'/}获取的是栏目“栏目内容”字段里的内容,通常也是HTML格式,使用htmlspecialchars_decode函数是为了正确显示其中的HTML标签。
使用 {dede:type} 标签 (灵活,适用于复杂判断)
{dede:type} 标签可以根据当前栏目ID,循环输出当前栏目的信息,虽然 $typelink 变量已经足够,但在一些复杂的条件判断或者需要多次调用不同字段时,{dede:type} 也是一个不错的选择。

(图片来源网络,侵删)
调用示例:
{dede:type}
<h2><a href="[field:typelink/]">[field:typename/]</a></h2>
<p>栏目ID:[field:id/]</p>
<p>栏目描述:[field:description/]</p>
{/dede:type}
- 说明:
[field:typelink/]对应$typelink['typeurl'][field:typename/]对应$typelink['typename'][field:id/]对应$typelink['id']- 以此类推。
使用PHP代码调用 (最灵活,适合高级开发者)
如果你需要在PHP逻辑中(比如在自定义函数里)获取当前栏目信息,可以直接使用PHP代码来获取。
调用示例:
<?php
// 获取当前栏目ID
$typeid = $GLOBALS['typeid'];
// 根据ID获取栏目完整信息(从缓存中读取,效率高)
$typeInfo = GetOneType($typeid);
if($typeInfo){
// 输出栏目名称
echo "<h1>" . $typeInfo['typename'] . "</h1>";
// 输出栏目链接
echo "<a href='" . $typeInfo['typedir'] . "'>查看更多</a>";
// 输出栏目SEO标题
echo $typeInfo['seotitle'];
}
?>
- 说明:
$GLOBALS['typeid']是全局变量,直接存储了当前栏目的ID。GetOneType()是DedeCMS的核心函数,用于获取指定ID的栏目信息,它会返回一个包含所有字段信息的数组。- 这种方法完全不受模板标签的限制,可以实现任何你想要的自定义逻辑。
总结与对比
| 方法 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|
$typelink 变量 |
最简单、最直接、效率最高 | 仅限于在模板文件中使用,不能在PHP逻辑中直接调用。 | 绝大多数列表页需求,如显示标题、链接、ID、描述等。 |
{dede:type} |
灵活,语法清晰,符合DedeCMS标签风格。 | 代码稍长,对于简单调用显得冗余。 | 需要在模板中进行复杂判断或循环调用时。 |
| PHP代码 | 最灵活、功能最强大,可以与任何PHP逻辑结合。 | 需要一定的PHP编程基础,不如标签直观。 | 需要在PHP文件中处理栏目信息,或编写复杂自定义功能时。 |
对于日常的列表页模板修改,强烈推荐使用方法一($typelink 变量),因为它最简单、最高效。{dede:field name='typename'/} 和 {dede:field name='typeurl'/} 这两个基本用法就能解决大部分问题。
