织梦dedeCMS调用二级子栏目或者循环调用多级栏目在网站制作过程中经常都会遇到。今天博主以DEDECMS v5.6版本调用代码作为示范,调用顶级栏目及其下的所有子栏目的代码。进入正题:
{dede:channelartlist typeid='3,3'} <a href="{dede:field name='typeurl'/}">{dede:field name='typename'/}</a> <hr> {dede:channel type='son' noself='yes'} <a href="[field:typelink/]">[field:typename/]</a><br /> {/dede:channel} {/dede:channelartlist}
如 果是已经熟悉了dedecms代码朋友我想已经能看懂是什么意思了,但是还是解释一下。{dede:channelartlist typeid='3,3'} typeid为3的顶级栏目 如果你的顶级栏目为其他,则相应的改之。如果是循环调用很多个顶级目录和子目录怎么办呢?请往下看:
{dede:channelartlist typeid='3,6‘}
<a href="{dede:field name='typeurl'/}">{dede:field name='typename'/}</a>
<hr>
{dede:channel type='son' noself='yes'}
<a href="[field:typelink/]">[field:typename/]</a><br />
{/dede:channel}
{/dede:channelartlist}
请看红色部分,意思是调用顶级栏目为3,4,5,6,的顶级栏目了。简单吧!如果有疑问,直接复制代码到模板去不断测试就知道其原理了。
也测试过这两种方式,不过不尽其意:
1:
下面是官方的解释:
【Channel 标记】
功能说明:用于获取栏目列表
适用范围:封面模板、列表模板、文档模板
(1)基本语法
{dede:channel row='' type=''}
自定义样式模板(InnerText)
{/dede:channel}
(2)属性
[1] row='数字' 表示获取记录的条数(通用在某级栏目太多的时候使用,默认是 8)
[2] type = top,sun/son,self
type='top' 表示顶级栏目
type='son' 或 'sun' 表示下级栏目
type='self' 表示同级栏目
其中后两个属性必须在列表模板中使用。
(3)底层模板变量
ID,typename,typedir,typelink(仅表示栏目的网址)
例:
{dede:channel type='top'}
<a href='[field:typelink /]'>[field:typename/]</a>
{/dede:channel}
注:在没有指定typeid的情况下,type标记与模板的环境有关,如,模板生成到栏目一,那么type='son'就表示栏目一的所有子类
2:DEDE商品分类三级如何用递归调用?
目前用了这个,
{dede:channelartlist cacheid='channelartlist'} <li> <h3><a href="{dede:field name='typeurl'/}">{dede:field name='typename'/}</a></h3> <ul> {dede:channel type='son' row='10' noself='yes'} <li id='son_[field:id/]'><a href='[field:typelink/]'>[field:typename/]</a></li> {/dede:channel} </ul> </li> {/dede:channelartlist}
是可以循环出来二级分类和二级分类以下的子类(三级分类),但是经过多重测试,这个方法,只适用于站后台只能有一个商品的顶级分类,如果出现两个,调取的值都是一个顶级分类的内容,之前也用过
{dede:channelartlist typeid=‘2’} <h3><a href="{dede:field name='typeurl'/}"> {dede:field name='typename'/}</a></h3> {dede:channel type='son' row='10' noself='yes'} <li id='son_[field:id/]'> <a href='[field:typelink/]'>[field:typename/]</a></li> {/dede:channel} {/dede:channelartlist} dede:channelartlist cacheid='channelsonlist' typeid=2} <li> <span><img src="images/about_left_y.jpg" width="8" height="8" /></span> <div><a href="{dede:field name='typeurl'/}">{dede:field name='typename'/}</a></div> <ul> {dede:channel type='sun' row='10' noself='yes'} <li><a href="[field:typeurl/]">[field:typename/]</a></li> {/dede:channel} </ul> </li> {/dede:channelartlist}
以上是我循环二级栏目及三级栏目所用的标签,
要是二级栏目下有三级栏目,就能正常输入,要是二级栏目没有三级栏目,就把同及栏目输出了
如下图所示