我们用DedeCMS制作下拉菜单导航时,可以使用channelartlist循环调用顶级栏目和子栏目,下拉菜单时这一段代码可以搞定多个顶级栏目和子级栏目的同时输出。代码演示如下:
 
<div>
<ul>
{dede:channelartlist row=6}只能首页用,子页要用改成{dede:channelartlist row=6 typeid=’top’}
<li>
<h3><a href='{dede:field name=’typeurl’/}’>{dede:field name=’typename’/}</a>></h3>
<ul>
{dede:channel type=’son’ noself=’true’}
<li><a href='[field:typelink/]’>[field:typename/]</a></li>
{/dede:channel}
</ul>
</li>
{/dede:channelartlist}
</ul>
</div>
 
注:如果你想控制顶级栏目的个数,请更改上面第一行红色的row参数
 
但该标签有一个问题,那就是不能获取并调用使用外部链接的栏目,但是我们可以通过修改文件来修复这个BUG,下面是详细的步骤:
 
找到并打开include/taglib/channelartlist.lib.php文件,在大概第67行左右找到下面这句代码:
 
$tpsql = ” reid=0 AND ispart<>2 AND ishidden<>1 AND channeltype>0 “;
 
替换成下面这句:
 
$tpsql = ” reid=0 AND ishidden<>1 AND channeltype>0 “;