织梦如何调取指定栏目标题?

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

页(article_article.htm)中调用当前栏目标题

这是最常见的需求,比如在文章详情页的面包屑导航或者页眉处显示这篇文章所属的栏目名称。

织梦调取指定栏目标题
(图片来源网络,侵删)

核心标签: {dede:field name='typename'/}

这个标签直接在文章内容页模板文件中使用,它会自动获取当前文章所属的栏目ID,并输出该栏目的标题。

示例代码:

假设你的文章详情页模板是 article_article.htm,想在面包屑导航里显示栏目名。

织梦调取指定栏目标题
(图片来源网络,侵删)
<div class="breadcrumb">
    <a href="{dede:global.cfg_cmsurl/}/">首页</a>
    <span> > </span>
    <!-- 调用当前文章所在的一级栏目 -->
    <a href="{dede:type typeid='0'}[field:typelink/]{/dede:type}">{dede:field name='typename'/}</a>
    <span> > </span>
    <!-- 调用当前文章所在的顶级栏目(如果栏目有层级) -->
    <a href="{dede:field name='topid' runphp='yes'}
        $tsql = new DedeSql(false);
        $typelink = '';
        $id = @me;
        // 循环向上查找顶级栏目
        while($id > 0){
            $tsql->SetQuery("Select * From `dede_arctype` where id='$id' ");
            $tsql->Execute('t');
            $row = $tsql->GetArray('t');
            $typelink = "<a href='".$row['typedir']."'>".$row['typename']."</a>" . $typelink;
            $id = $row['reid'];
        }
        @me = $typelink;
        {/dede:field name='topid'}">{dede:field name='typename'/}</a>
    <span> > </span>
    <strong>{dede:field name='title'/}</strong>
</div>

更简单的面包屑写法(推荐):

织梦自带的 {dede:field.position/} 标签可以自动生成完整的面包屑路径,包含所有层级的栏目链接。

<div class="breadcrumb">
    {dede:field.position runphp='yes'}
        $a = explode('<a', @me);
        @me = '';
        for($i=1;$i<count($a);$i++){
            $b = explode('>', $a[$i]);
            @me .= '<a'.$a[$i].'>';
            if($i<count($a)-1) @me .= ' > ';
        }
        @me = str_replace(' > > ', ' > ', @me);
    {/dede:field.position}
</div>

这段代码可以优化 {dede:field.position/} 默认输出的 首页 > 栏目 > 栏目 > 文章 样式,使其更美观。


在列表页(list_栏目ID.htm)中调用当前栏目标题

在栏目列表页,你通常想在页面标题或页眉处显示“栏目名称列表”。

核心标签: {dede:field name='typename'/}

和方法一类似,在列表页模板中,这个标签会自动获取当前列表页面对应的栏目名称。

示例代码:

list_栏目ID.htm 模板文件中,可以这样使用:

<h1>{dede:field name='typename'/}列表</h1>
<p>您正在浏览的是“{dede:field name='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:type} ... {/dede:type}

这个标签需要一个 typeid 属性来指定你要调取的栏目ID。

操作步骤:

  1. 找到栏目ID:

    • 登录织梦后台。
    • 进入【核心】-> 【栏目管理】。
    • 找到你想要调取的栏目(公司新闻”),将鼠标悬停在该栏目名称上,浏览器左下角的状态栏会显示类似 dede/catalog_edit.php?cid=2 的链接,其中的 2 就是这个栏目的ID。
  2. 在模板中使用标签:

    语法:

    {dede:type typeid='栏目ID'}
        <a href="[field:typelink/]">[field:typename/]</a>
    {/dede:type}

    示例代码:

    假设“公司新闻”栏目的ID是 2,想在首页调用它。

    <div class="news-section">
        <div class="section-title">
            <!-- 调用ID为2的栏目标题,并生成链接 -->
            {dede:type typeid='2'}
                <a href="[field:typelink/]">[field:typename/]</a>
            {/dede:type}
        </div>
        <div class="section-content">
            <!-- 这里可以放调用该栏目文章的代码 -->
            {dede:arclist typeid='2' titlelen='30' row='5'}
                <li><a href="[field:arcurl/]">[field:title/]</a></li>
            {/dede:arclist}
        </div>
    </div>

    说明:

    • typeid='2':必须替换成你自己的栏目ID。
    • [field:typelink/]:输出该栏目的完整链接地址(如 /news/)。
    • [field:typename/]:输出该栏目的标题(如“公司新闻”)。

场景 使用标签 说明
{dede:field name='typename'/} 自动获取当前文章所属栏目标题。
列表页 {dede:field name='typename'/} 自动获取当前列表页面对应的栏目标题。
任意页面 {dede:type typeid='ID'}
[field:typename/]<br>{/dede:type}
通过指定 typeid 来精确调取任意一个栏目的标题和链接。

希望这些方法能帮助你解决织梦调取指定栏目标题的问题!

-- 展开阅读全文 --
头像
织梦自动分页不起作用
« 上一篇 03-01
C语言如何实现异常处理机制?
下一篇 » 03-01

相关文章

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

目录[+]