dede如何调用指定栏目名?

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

{dede:field}{dede:global}

调用栏目名主要依赖两个核心标签:

dede调用指定栏目名
(图片来源网络,侵删)
  1. {dede:field}:主要用于在列表页内容页中,获取当前栏目的信息。
  2. {dede:global}:主要用于在首页或其他地方,获取指定ID的栏目信息。

在列表页或内容页调用当前栏目名 (最常用)

这是最简单、最常见的情况,你正在一个栏目列表页(list_article.htm)或文章内容页(article_article.htm),想获取这个页面所属栏目的名称。

使用标签: {dede:field name='typename'/}

示例代码: 在列表页模板(list_article.htm)中,可以这样用:

<h1>您正在浏览:{dede:field name='typename'/}</h1>
<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>

效果: 如果这个列表页是“技术分享”栏目,页面标题就会显示“您正在浏览:技术分享”。

dede调用指定栏目名
(图片来源网络,侵删)

在首页或其他页面调用指定ID的栏目名

如果你想在首页、首页的某个特定区块,或者一个自定义的静态页面中,调用一个已知ID的栏目名称。

使用标签: {dede:global name='itemname'/}{dede:global name='typename'/}

示例代码: 假设“公司简介”栏目的ID是 1,你想在首页调用它。

  1. 方法A (推荐,更灵活): 使用SQL标签直接查询,这是最可控的方式。

    {dede:sql sql="SELECT typename FROM dede_arctype WHERE id=1"}
        <h2>栏目名称是:[field:typename/]</h2>
    {/dede:sql}
  2. 方法B (在特定场景下使用): 如果这个栏目是你的网站的主导航,并且你确定它的ID,也可以使用 global 标签,但不如SQL方法灵活。

    <!-- 假设ID为1的栏目是你想调用的 -->
    {dede:global name='itemname'/} 
    <!-- 或者 -->
    {dede:global name='typename'/}

    注意: global 标签的值通常在特定上下文中(如频道页)才有效,直接指定ID不一定成功。强烈推荐使用方法A的SQL标签


调用指定父栏目下的所有子栏目名称

这是一个非常实用的需求,比如在首页做一个“产品中心”板块,并列出其下的所有产品子栏目。

使用标签: {dede:channel}

示例代码: 假设“产品中心”栏目的ID是 5,你想调用它所有的一级子栏目。

<h2>产品中心</h2>
<ul>
    {dede:channel type='son' typeid='5'}
    <li>
        <a href="[field:typeurl/]">[field:typename/]</a>
    </li>
    {/dede:channel}
</ul>

参数说明:

  • typeid='5':指定父栏目的ID。
  • type='son':表示调用该栏目ID下的直接子栏目(一级栏目)。
  • [field:typeurl/]:调用栏目的链接地址。
  • [field:typename/]:调用栏目的名称。

调用指定顶级栏目(父栏目)的名称

你在一篇文章里,想获取这篇文章所属栏目的顶级父栏目的名称,文章在“前端开发/JavaScript”下,你想获取“前端开发”这个栏目的名。

使用标签: {dede:field name='toptypename'/}

示例代码:页模板(article_article.htm)中:

<p>文章所属的顶级分类是:<strong>{dede:field name='toptypename'/}</strong></p>
<p>文章所属的当前分类是:<strong>{dede:field name='typename'/}</strong></p>

效果: 如果文章在“技术分享/前端开发/JavaScript”栏目下,

  • {dede:field name='toptypename'/} 会显示 “技术分享”。
  • {dede:field name='typename'/} 会显示 “JavaScript”。

总结与对比

需求场景 推荐标签 示例代码 说明
在列表/内容页获取当前栏目名 {dede:field name='typename'} {dede:field name='typename'/} 最常用,直接获取当前页面对应的栏目名。
在首页调用指定ID的栏目名 {dede:sql} {dede:sql sql="SELECT typename FROM dede_arctype WHERE id=1"}[field:typename/]{/dede:sql} 最灵活、最可靠的方法,不受页面上下文限制。
调用指定父栏目的所有子栏目 {dede:channel} {dede:channel type='son' typeid='5'}[field:typename/]{/dede:channel} 适用于制作导航、产品展示等区块。

希望这些方法能帮助你解决在DedeCMS中调用指定栏目名的问题!

-- 展开阅读全文 --
头像
C语言源代码中,关键实现逻辑如何?
« 上一篇 03-07
C语言中二进制字符与文件如何转换处理?
下一篇 » 03-07

相关文章

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

目录[+]