我们在采用织梦建设网站的过程中,经常会遇到左边侧栏需要调用全部顶级栏目以及其下属子栏目的情况,如下图所示:
这个时候织梦现有的channel频道标签只能调用顶级栏目或者子栏目,两者无法同时调用,所以这时候就得考虑channelartlist标签,channelArtlist 是除了宏标记外,唯一一个可以直接嵌套其它标签的标签,具体代码如下:
{dede:channelartlist typeid='71,76,77,78,79,80,81' row=7} <p><a href="{dede:field name='typeurl'/}">{dede:field name='typename'/}</a></p> <ul> {dede:channel type='son' } <li><a href='[field:typelink/]'>[field:typename/]</a> </li> {/dede:channel} </ul> {/dede:channelartlist}
注:channelartlist标签主要用于多项循环,故当typeid的值只有一项时,直接不出结果。所以想只调用一个顶级栏目下的全部子栏目时,可用以下方式:
{dede:channelartlist typeid='71,72' row=1} <p><a href="{dede:field name='typeurl'/}">{dede:field name='typename'/}</a></p> <ul> {dede:channel type='son' } <li><a href='[field:typelink/]'>[field:typename/]</a> </li> {/dede:channel} </ul> {/dede:channelartlist}
用row=1的方式,仅仅显示typeid号等于71的顶级栏目名称及其全部子栏目。
如果没有调用出顶级栏目名称请看这里:
将上面的代码还成下面的,其实就是改了<dt>里的调用标签
{dede:channelartlist typeid='11' row='1'} <dt>{dede:type typeid='11'}<strong>[field:typename/]{/dede:type}</strong></dt> <ul class="c1 ico4" style="border-left:1px solid #eee; border-right:1px solid #eee;"> {dede:channel type='son' } <li><a href='[field:typelink/]'>[field:typename/]</a></li> {/dede:channel} </ul> {/dede:channelartlist}