dede如何调取指定栏目的名称?

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

在列表页(如 list_article.htm)中调取当前栏目名称

这是最常见的情况,比如在文章列表页的标题位置显示“公司新闻”或“产品中心”。

dede调取栏目名称
(图片来源网络,侵删)

使用标签: {dede:field.typename/}

这个标签会直接输出当前列表页所对应的栏目名称。

示例代码:

在你的列表页模板文件 list_article.htm 中,可以这样使用:

dede调取栏目名称
(图片来源网络,侵删)
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">{dede:field.typename/} - {dede:global.cfg_webname/}</title>
</head>
<body>
    <h1>{dede:field.typename/}</h1>
    <p>这里是栏目:{dede:field.typename/} 的文章列表</p>
    <!-- 文章列表循环开始 -->
    {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}
    <!-- 文章列表循环结束 -->
    <!-- 分页 -->
    {dede:pagelist listsize='4'/}
</body>
</html>

说明:

  • {dede:field.typename/} 会自动获取当前栏目的名称。
  • {dede:global.cfg_webname/} 是获取网站后台设置的网站名称,通常用作标题的后缀。

页(如 article_article.htm)中调取所属栏目名称

当你需要在文章内容页显示这篇文章属于哪个栏目时,可以使用这个方法。

使用标签: {dede:field.typeid/} 输出的是栏目ID,而 {dede:field.typename/} 同样可以直接输出栏目名称。

示例代码: 页模板文件 article_article.htm 中:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">{dede:field.title/} - {dede:field.typename/} - {dede:global.cfg_webname/}</title>
</head>
<body>
    <div class="breadcrumb">
        当前位置:<a href="{dede:global.cfg_cmsurl/}/">首页</a> > <a href="{dede:typelink/}">{dede:field.typename/}</a> > {dede:field.title/}
    </div>
    <h1>{dede:field.title/}</h1>
    <p class="info">
        所属栏目:<strong>{dede:field.typename/}</strong>
        发布时间:{dede:field.pubdate function="MyDate('Y-m-d H:i:s',@me)"/}
    </p>
    <div class="content">
        {dede:field.body/}
    </div>
</body>
</html>

说明:页,{dede:field.typename/} 同样能正确获取到当前文章所属的栏目名称。

  • {dede:typelink/} 是一个非常有用的标签,它会生成指向该栏目的链接,而不仅仅是文字。

使用SQL语句自由调取任意栏目名称

如果你想在非列表页、非内容页的模板中(比如首页的某个特定区块)调取一个指定ID的栏目名称,就需要使用SQL查询标签。

使用标签: {dede:sql sql="SELECT typename FROM dede_arctype WHERE id='栏目ID'"/}

示例代码:

假设你想在首页模板 index.htm 中调取ID为 5 的栏目名称。

<h2>我们推荐一个栏目:</h2>
<p>栏目名称是:{dede:sql sql="SELECT typename FROM dede_arctype WHERE id='5'"}[field:typename/]{/dede:sql}</p>

代码解析:

  • dede:sql:执行自定义SQL语句的标签。
  • sql="...":里面是标准的SQL查询语句。
  • dede_arctype:DedeCMS中存储栏目的数据表名。
  • WHERE id='5':查询条件,指定要获取的栏目ID。请务必将 '5' 替换成你自己的栏目ID
  • [field:typename/]:在 dede:sql 标签内部,使用 [field:字段名/] 来输出SQL查询结果。

更简洁的写法(推荐):

DedeCMS提供了一个更简洁的标签来实现这个功能,推荐使用:

{dede:type typeid='5'}
    [field:typename/]
{/dede:type}

代码解析:

  • {dede:type typeid='5'}:指定要查询的栏目ID。
  • [field:typename/]:输出该栏目的名称。
  • 这种写法比直接写SQL更安全、更符合DedeCMS的标签规范。

总结与对比

调取场景 推荐标签 说明
列表页 {dede:field.typename/} 最简单直接,自动获取当前栏目。
任意位置(已知ID) {dede:type typeid='5'}[field:typename/]{/dede:type} 推荐方法,简洁、安全,用于调取指定ID的栏目。
任意位置(已知ID) {dede:sql sql="..."}[field:typename/]{/dede:sql} 功能强大,但稍显复杂,适合更复杂的SQL查询。

希望这些方法能帮到你!在实际使用中,最常用的就是前两种,而第三种则在制作复杂的自定义页面时非常有用。

-- 展开阅读全文 --
头像
火车头织梦发布模块如何实现?
« 上一篇 04-21
织梦后台幻灯片管理如何操作?
下一篇 » 04-21

相关文章

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

目录[+]