如何调用当前栏目名称?

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

在列表页和文章页(最常用)

这是最标准、最常用的方法,适用于栏目列表页 (list_article_xxx.htm) 和文章内容页 (article_article_xxx.htm)。

dede标题调用当前栏目名称
(图片来源网络,侵删)

使用 DedeCMS 的内置标签 {dede:field name='typename'/} 即可。

示例代码:

<h1>您当前所在的位置是:<strong>{dede:field name='typename'/}</strong></h1>

解释:

  • {dede:field} 是 DedeCMS 调用字段信息的标签。
  • name='typename' 指定了要调用的字段是“栏目名称”。
  • 这个标签会自动解析当前页面对应的栏目,并输出其名称。

在首页调用指定顶级栏目名称

如果你想在首页调用某个特定顶级栏目的名称(比如导航栏上的“关于我们”),可以使用 {dede:channel}

示例代码:

dede标题调用当前栏目名称
(图片来源网络,侵删)
{dede:channel type='top' row='1'}
    <a href="[field:typelink/]">[field:typename/]</a>
{/dede:channel}

参数说明:

  • type='top':表示只调用顶级栏目。
  • row='1':表示只调用一条记录,你可以根据需要修改,row='8' 就会调用前8个顶级栏目。
  • [field:typelink/]:调用栏目的链接地址。
  • [field:typename/]:调用栏目的名称。

如果你知道栏目的ID,还可以使用更精确的调用方式:

{dede:channel typeid='1'}
    <a href="[field:typelink/]">[field:typename/]</a>
{/dede:channel}

这里的 typeid='1' 就是调用ID为1的栏目名称。


在首页或封面页调用当前栏目名称(需要JS配合)

这个方法比较特殊,适用于在首页或其他非栏目页面上,根据用户点击来动态显示当前栏目名称的场景,这通常需要结合 JavaScript 和一个隐藏的 <span> 标签来实现。

dede标题调用当前栏目名称
(图片来源网络,侵删)

在首页模板中加入一个隐藏的 <span>

<!-- 在首页模板的合适位置,比如导航栏下方 -->
<h2>
    当前栏目:<span id="currentTypeName" style="display:none;">{dede:field name='typename'/}</span>
</h2>

注意: 在首页,{dede:field name='typename'/} 默认是空的,但没关系,我们的目的只是让 DedeCMS 在解析时保留这个标签结构。

在栏目列表页的模板中加入 JS 代码

<!-- 在栏目列表页模板的 <head> 部分或底部加入以下 JS -->
<script type="text/javascript">
    // 将当前页面的栏目名称写入首页的 span 标签
    (function(){
        // 获取当前页面的栏目名称
        var typeName = "{dede:field name='typename'/}";
        // 获取首页中那个隐藏的 span 元素
        var spanElement = parent.document.getElementById("currentTypeName");
        // 如果找到了这个元素,就设置它的内容并显示出来
        if(spanElement){
            spanElement.textContent = typeName;
            spanElement.style.display = "inline";
        }
    })();
</script>

工作原理:

  • 当用户访问一个栏目列表页时,这个 JS 代码会执行。
  • 它首先获取当前页面的栏目名称(通过 {dede:field name='typename'/})。
  • 然后通过 parent.document 查找父窗口(也就是首页)中 ID 为 currentTypeName<span> 元素。
  • 将获取到的栏目名称填入这个 <span>,并将其显示出来。

注意: 这种方法依赖于 iframe 或框架结构,或者确保页面间的父子关系正确,在现代网站开发中,这种用法较少,但了解其原理有助于处理一些旧项目。


总结与推荐

场景 推荐标签 代码示例 说明
列表页、文章页 {dede:field name='typename'/} <h1>{dede:field name='typename'/}</h1> 最常用、最标准的方法,直接调用当前栏目名。
首页(调用顶级栏目) {dede:channel} {dede:channel type='top'}[field:typename]{/dede:channel} 用于在首页循环或单独调用顶级栏目。
特殊动态需求 JS + {dede:field} 见方法三 用于在非栏目页(如首页)动态显示栏目名,较为复杂。

对于绝大多数情况,方法一 {dede:field name='typename'/} 就完全够用了,请优先使用它。

-- 展开阅读全文 --
头像
哪些网站仍在用织梦默认模板?
« 上一篇 前天
dede如何精准判断手机访问?
下一篇 » 前天
取消
微信二维码
支付宝二维码