dede如何调用当前栏目名称与ID?

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

{dede:field}{dede:global}

调用当前栏目信息,主要依赖于两个上下文环境标签:

dede调用当前栏目
(图片来源网络,侵删)
  1. {dede:field}: 用于获取当前栏目的字段,如栏目名、栏目ID、栏目描述、栏目链接等。
  2. {dede:global}: 用于获取全局变量,在栏目页,{dede:global.name/} 通常也指向当前栏目的名称(与 {dede:field name='typename'/} 效果相同)。

在列表页 (list_article.htm) 调用

这是最常见的情况,比如在列表页的标题位置显示“ - 当前栏目名 - 网站名称”这样的格式。

获取栏目名称

<h1>{dede:field name='typename'/}</h1>
  • 说明name='typename' 指的是调用当前栏目数据表 (dede_arctype) 中的 typename 字段,即栏目的名称。

获取栏目链接

<a href="{dede:field name='typeurl'/}">{dede:field name='typename'/}</a>
  • 说明name='typeurl' 会自动生成当前栏目的链接地址,格式为 你的域名/栏目目录/

获取栏目ID

当前栏目ID是: {dede:field name='id'/}
  • 说明name='id' 调用的是栏目的唯一ID。

获取栏目描述和关键词

<meta name="description" content="{dede:field name='description' function='html2text(@me)'/}">
<meta name="keywords" content="{dede:field name='keywords'/}">
  • 说明
    • description 是栏目的描述。
    • keywords 是栏目的关键词。
    • function='html2text(@me)' 是一个非常重要的修饰,它会将描述中可能存在的 HTML 标签(如换行 <br>)去除,只保留纯文本,这对于 SEO 非常友好。

获取栏目内容(栏目简介)

<div class="intro">
    {dede:field name='content'/}
</div>
  • 说明content 字段是在后台“栏目管理” -> “修改栏目”时填写的“栏目简介”,支持 HTML 代码。

页 (article_article.htm) 调用

页,你可能也想显示文章所属的栏目名称和链接。

获取当前文章所属的栏目名称

发布栏目: <a href="{dede:field name='typeurl'/}">{dede:field name='typename'/}</a>
  • 说明:在文章页,{dede:field} 标签同样可以调用当前文章所属栏目的信息,用法与列表页完全一样。

获取上级栏目名称和链接

这是一个非常实用的功能,比如面包屑导航。

<!-- 面包屑导航示例 -->
<a href="{dede:global.cfg_cmsurl/}/">首页</a> > 
<a href="{dede:field name='typeurl'/}">{dede:field name='typename'/}</a>
  • 说明:这里 {dede:field name='typeurl'}{dede:field name='typename'} 指的是当前文章所在栏目的链接和名称,如果你想获取上级栏目,需要使用 {dede:field name='topreid'/} 等更复杂的逻辑,或者使用 DedeCMS 的内置面包屑标签。

使用 DedeCMS 内置的面包屑导航标签

DedeCMS 提供了专门的面包屑导航标签,这是最标准、最推荐的方法,能自动处理多级栏目。

dede调用当前栏目
(图片来源网络,侵删)
{dede:field name='position'/}
  • 说明
    • 这个标签会自动生成类似 “首页 > 科技 > 互联网” 这样的导航路径。
    • 它会智能地获取从顶级栏目到当前栏目的所有层级,并生成对应的链接。
    • 在列表页和内容页都可以使用。

完整示例:列表页模板 (list_article.htm) 代码片段

下面是一个完整的列表页头部示例,整合了上述多种调用方法。

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">{dede:field name='title'/} - {dede:field name='typename'/} - {dede:global.cfg_webname/}</title>
    <meta name="description" content="{dede:field name='description' function='html2text(@me)'/}">
    <meta name="keywords" content="{dede:field name='keywords'/}">
</head>
<body>
    <!-- 面包屑导航 -->
    <div class="breadcrumb">
        {dede:field name='position'/}
    </div>
    <!-- 当前栏目名称和链接 -->
    <h1><a href="{dede:field name='typeurl'/}">{dede:field name='typename'/}</a></h1>
    <!-- 栏目简介/描述 -->
    <div class="intro">
        {dede:field name='content'/}
    </div>
    <!-- 文章列表内容 -->
    <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>
    <!-- 分页 -->
    <div class="page">
        {dede:pagelist listsize='5'/}
    </div>
</body>
</html>

常用当前栏目字段列表

字段名 说明 示例
id 栏目ID {dede:field name='id'/}
typeid 栏目ID (同id) {dede:field name='typeid'/}
typename 栏目名称 {dede:field name='typename'/}
typedir 栏目目录 (不含域名) /a/tech/
typeurl 栏目完整链接 http://www.example.com/a/tech/
description 栏目描述 {dede:field name='description'/}
keywords 栏目关键词 {dede:field name='keywords'/}
content 栏目简介/内容 {dede:field name='content'/}
reid 上级栏目ID {dede:field name='reid'/}
topid 顶级栏目ID {dede:field name='topid'/}
position 面包屑导航路径 {dede:field name='position'/}

希望这份详细的指南能帮助您在 DedeCMS 中灵活地调用当前栏目信息!

dede调用当前栏目
(图片来源网络,侵删)
-- 展开阅读全文 --
头像
dede发布文章为何会错位?
« 上一篇 04-21
C语言warning为何总出现?如何有效解决?
下一篇 » 04-21

相关文章

取消
微信二维码
支付宝二维码

目录[+]