织梦CMS顶级栏目与二级栏目的关系与调用
织梦CMS采用无限级分类体系,顶级栏目和二级栏目是最主要的两个层级。掌握它们的调用关系是模板开发的基础。
一、顶级与二级的数据关系
在dede_arctype表中:
- 顶级栏目:
reid=0,topid=id(自身ID)。 - 二级栏目:
reid=父栏目ID,topid=父栏目ID。
二、调用顶级栏目及其二级栏目
{dede:channel type='top' row='10'}
<h2><a href="[field:typelink/]">[field:typename/]</a></h2>
{dede:channel type='son' noself='yes'}
<li><a href="[field:typelink/]">[field:typename/]</a></li>
{/dede:channel}
{/dede:channel}
三、顶级栏目页显示其二级栏目入口
在封面模板中展示子栏目列表:
<h1>{dede:field name='typename'/}</h1>
{dede:channel type='son'}
<div class="sub-cate">
<a href="[field:typelink/]">
<img src="[field:typeimg/]">
<span>[field:typename/]</span>
</a>
</div>
{/dede:channel}
四、判断当前栏目的层级
{dede:php}
$reid=$refObj->TypeLink->TypeInfos['reid'];
if($reid==0){
echo '当前是顶级栏目';
}else{
echo '当前是子栏目(二级或以下)';
}
{/dede:php}
五、不同层级的模板区分
可以为顶级栏目和二级栏目使用不同的列表模板,在栏目管理中分别设置即可实现:
- 顶级栏目:使用
list_article.htm(含子栏目入口)。 - 二级栏目:使用
list_article_sub.htm(纯文章列表)。
设计建议:顶级栏目通常作为分类入口(频道封面),展示二级栏目导航;二级栏目作为内容容器(列表页),展示具体文章。这是最常见的信息架构模式。