使用 {dede:field} 标签(最推荐、最简洁)
这是最直接、最简单的方法,适用于绝大多数情况。

代码:
{dede:field name='typename'/}
说明:
{dede:field}是DedeCMS用于调用文档或栏目基本属性的标签。name='typename'指定了要调用的属性是“栏目名称”(type name)。- 这段代码可以直接放在列表页模板文件(通常是
list_article.htm)的任何您想显示栏目名称的位置。
示例: 假设您的列表页模板标题部分希望显示“产品分类 - 公司动态”这样的格式,您可以这样写:
<h1>{dede:field name='typename'/}</h1>
<p>您正在浏览的是 <strong>{dede:field name='typename'/}</strong> 栏目下的所有文章。</p>
使用 {dede:channel} 标签(适用于需要链接的情况)
如果您想在显示栏目名称的同时,让这个名称可以点击跳转到该栏目的列表页(虽然当前就在列表页,但有时会用于导航或面包屑),可以使用 代码: 说明: 示例:
在面包屑导航中使用: 当您需要进行一些复杂的判断或处理时,直接使用PHP代码会非常灵活,这种方法几乎适用于所有场景,包括列表页、文章页甚至首页。 代码: 说明: 模板文件位置 栏目名称为空 调用上级栏目名称
如果您想调用的是当前栏目的上一级栏目的名称,可以使用下面的PHP代码: 对于99%的列表页调用当前栏目名称的需求,使用方法一 {dede:channel}

<a href="{dede:field name='typeurl'/}">{dede:field name='typename'/}</a>
{dede:field name='typeurl'} 会调用当前栏目的URL地址。{dede:field name='typename'/} 是一样的,只是外面加了一个 <a>
您的位置:<a href="{dede:global name='cfg_cmsurl'/}/">首页</a> >
<a href="{dede:field name='typeurl'/}">{dede:field name='typename'/}</a>
使用PHP代码(最灵活、最强大)
<?php
$thisid = $typeid; // 在列表页,$typeid 变量直接保存了当前栏目ID
$typename = GetTopTypename($thisid); // 获取栏目名称
echo $typename;
?>
$typeid:这是DedeCMS在列表页模板中预设的全局变量,直接存储了当前栏目的ID。GetTopTypename($id):这是DedeCMS的一个核心PHP函数,用于根据栏目ID获取该栏目的名称。$typeid 可能未定义。echo $typename 没有输出,可以尝试以下更严谨的写法:<?php
// $typeid 不存在,尝试从 $_GET 中获取
if(empty($typeid)){
$typeid = isset($_GET['typeid']) ? intval($_GET['typeid']) : 0;
}
if($typeid > 0){
$typename = GetTopTypename($typeid);
echo $typename;
}else{
echo "未知栏目";
}
?>
重要注意事项和常见问题排查
/templets/您的文件夹名称/ 目录下,文件名为 list_*.htm(list_article.htm)。
$typeid 的值是否能正常获取。$typeid 为空,说明页面没有正确识别当前栏目。<?php
$thisid = $typeid;
$row = $dsql->GetOne("SELECT reid FROM `#@__arctype` WHERE id = $thisid");
$parentid = $row['reid'];
if($parentid > 0){
$parent_name = GetTopTypename($parentid);
echo $parent_name;
}
?>
方法
代码
优点
缺点
适用场景
方法一
{dede:field name='typename'/}最简单、最直接、代码少
功能单一,只能获取名称
绝大多数列表页需求,首选方法。
方法二
<a href="{dede:field name='typeurl'/}">{dede:field name='typename'/}</a>简单,且能生成链接
比方法一多一个标签
需要名称可点击时(如面包屑)。
方法三
<?php echo GetTopTypename($typeid); ?>最灵活、最强大,可处理复杂逻辑
需要写PHP代码,对新手稍难
需要条件判断、或PHP原生函数支持时。
{dede:field name='typename'/} 就完全足够了,如果遇到问题,再尝试使用方法三进行排查。
