# dedecms栏目高亮显示代码怎么写

*Published:* 2023-08-25
*Author:* 客服001

#### 温馨提醒

如果文章内容或图片资源失效，请留言反馈，我们会及时处理，谢谢

本文最后更新于2023年8月25日，已超过 180天没有更新



在处理企业站的时候，经常发现要调用一二三级栏目栏目，且需要[高亮](https://www.xarjtc.com/tag/%e9%ab%98%e4%ba%ae "查看高亮此标签更多文章")显示，下面给出以下几种情况的具体实现方法如下

一、官方给出的基本调用方法

```
{dede:channel type="top" currentactive'><a href='~typelink~'>~typename~</a></li>" }
<li><a href='[field:typeurl/]' >[field:typename/]</a></li>
{/dede:channel}
```

二、判断首页高亮

```
<li {dede:field name="typeid" runphp="yes"}(@me=="")? @me="class='active'":@me="";{/dede:field}><a href="/">首页</a></li >
```

三、dede:channel指定typeid子栏目调用currentstyle高亮无效的解决方法

打开include/taglib/channel.lib.php找到

$row\['id'\]==$typeid

改成

$row\['id'\]==$refObj-&gt;TypeLink-&gt;TypeInfos\['id'\]

四、让channelartlist标签当前栏目高亮，即点击子栏目，父栏目高亮显示

打开文件include\\taglib\\channelartlist.lib.php

在此行代码下方增加以下代码：

```
if($typeids[$i]['id'] == $refObj->TypeLink->TypeInfos['id'] || $typeids[$i]['id'] == $refObj->TypeLink->TypeInfos['topid'] ){ 
    $pv->Fields['currentstyle'] = $currentstyle ? $currentstyle : 'active'; 
} else{ 
    $pv->Fields['currentstyle'] = ''; 
}
```

添加这个后才能对二级栏目也起作用，例：判断是否是当前栏目，如果是则显示高亮；判断是否有二级栏目，如果有则显示下拉图标。调用方法：

```
{dede:channelartlist typeid='1,14,2,3,10,11' currentstyle="active"}
<li class='{dede:field.currentstyle/}'><a href="{dede:field name='typeurl'/}">{dede:field name='typename'/}
    {dede:field name=typeid runphp="yes"}
    global $dsql;
    $sql = "SELECT id From `dede_arctype` WHERE reid='@me' And ishidden<>1 order by sortrank asc limit 0, 100 ";
    $row = $dsql->GetOne($sql);
    if(@me=is_array($row))
    @me='<i class="fa fa-angle-down"></i>';
    else @me = "";
    {/dede:field}
</a>
    <ul>
        {dede:channel type='son' noself='yes'}
        <li><a href="[field:typelink/]">[field:typename/]</a></li>
        {/dede:channel}
    </ul>
</li>
{/dede:channelartlist}
```

如果是当前栏目则 li的class属性显示active，否则显示class='' ，也可以修改currentstyle='这里改为你需要的类名'。