织梦cms判断父栏目

织梦CMS判断父栏目的多种方法

在织梦CMS模板开发中,经常需要根据当前栏目的父栏目来展示不同的内容或样式。例如在子栏目页面显示父栏目下所有兄弟栏目的列表。

一、获取父栏目信息

通过PHP在模板中获取父栏目ID和名称:

{dede:php}
$reid=$refObj->TypeLink->TypeInfos['reid'];  // 父栏目ID
if($reid==0){
echo '当前是顶级栏目';
}else{
$row=$dsql->GetOne("SELECT typename FROM dede_arctype WHERE id=$reid");
echo '父栏目是:'.$row['typename'];
}
{/dede:php}

二、判断是否为某个父栏目的子栏目

{dede:php}
$topid=$refObj->TypeLink->TypeInfos['topid'];
if($topid==3){
echo '当前属于ID为3的栏目体系';
}
{/dede:php}

三、用reid字段判断

reid=0表示顶级栏目,reid>0表示子栏目:

{dede:php}
$reid=$refObj->TypeLink->TypeInfos['reid'];
if($reid==0) echo '顶级栏目';
else echo '父栏目ID:'.$reid;
{/dede:php}

四、在导航中根据不同父栏目显示不同内容

{dede:channel type='top'}
<li>
<a href="[field:typelink/]">[field:typename/]</a>
{dede:channel type='son' noself='yes'}
<li><a href="[field:typelink/]">[field:typename/]</a></li>
{/dede:channel}
</li>
{/dede:channel}

五、在侧边栏显示当前父栏目的所有子栏目

{dede:php}
$reid=$refObj->TypeLink->TypeInfos['reid'];
$pid=$reid==0 ? $refObj->TypeLink->TypeInfos['id'] : $reid;
{/dede:php}
{dede:channel type='son' typeid='[field:php]echo $pid;[/field:php]'}
<li><a href="[field:typelink/]">[field:typename/]</a></li>
{/dede:channel}
实用场景:电商网站中,进入任一产品子栏目后,侧边栏展示该产品分类下的所有子分类,方便用户切换。