dede列表页如何调用当前栏目名称?

99ANYc3cd6
预计阅读时长 11 分钟
位置: 首页 DEDE建站 正文

使用全局变量 $typelink (最推荐、最简洁)

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

dede列表页调用当前栏目
(图片来源网络,侵删)

$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

dede列表页调用当前栏目
(图片来源网络,侵删)
<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列表页调用当前栏目
(图片来源网络,侵删)

调用示例:

{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'/} 这两个基本用法就能解决大部分问题。

-- 展开阅读全文 --
头像
织梦PHP模板安装教程具体步骤是怎样的?
« 上一篇 02-10
C语言中write与read函数如何正确使用?
下一篇 » 02-10
取消
微信二维码
支付宝二维码

目录[+]