# 织梦cms channelartlist判断是否有子栏目以及当前栏目高亮

*Published:* 2023-10-13
*Author:* 客服001

#### 温馨提醒

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

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



使用织梦内容管理系统时在制作菜单导航调用二级菜单的时候，会遇到这样的问题，如果有子栏目，就显示二级菜单，如果没有就不显示，下面给出代码：

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

找到：

```
$pv->Fields['typeurl']=GetOneTypeUrlA($typeids[$i]);
```

在此行代码下方增加以下代码(class="active"这个是你的CSS里要设置的[高亮](https://www.xarjtc.com/tag/%e9%ab%98%e4%ba%ae "查看高亮此标签更多文章")显示样式)

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

判断是否有子栏目

```
{dede:channelartlist typeid="top" current}
<li class="{dede:field.currentstyle/}{dede:field name='typeid' runphp='yes'} global $dsql; $sql = "SELECT id From `#@__arctype` WHERE reid='@me' And ishidden<>1 order by sortrank asc limit 0, 100 ";
$row = $dsql->GetOne($sql);
@me=is_array($row)?'has-sub':' ';
{/dede:field}"><a href="{dede:field name='typeurl'/}">{dede:field name='typename'/}</a>
<ul>
    {dede:channel type='son' noself='yes'}
    <li><a href='[field:typeurl/]'>[field:typename/]</a></li>
    {/dede:channel}
</ul>
</li>
{/dede:channelartlist}
```

实现有二级栏目时一级栏目的Url输出 javascript:; 只有一级栏目就输出顶级栏目链接

```
{dede:field name=typeid runphp=yes}global $dsql;$row = $dsql->GetOne("select * from `#@__arctype` where reid='@me' and ishidden<>1 order by sortrank asc limit 0,1");if(is_array($row)) @me = 'javascript:;'; else @me = GetOneTypeUrlA($dsql->GetOne("select * from `#@__arctype` where id='@me' and ishidden<>1"));{/dede:field}
```