dedecms调用【同级或下级】栏目的方法,channelartlist在列表页和内容页调用【同级或下级】栏目文章

使用织梦dedecms时,想在列表页和内容页调用同级栏目的文章,当然可以使用

{dede:channelartlist typeid=‘1’ row='5'}

的方法,指定栏目id,但是要自动判断当前栏目的同级栏目就没办法了或者需要给每个顶级栏目分配一个模板,这样很麻烦。

 

本文将给一种更简单的办法:

1.找到\include\taglib\channelartlist.lib.php 文件,查找:

 $attlist = 'typeid|0,row|20,cacheid|'; 

修改为:

$attlist = 'typeid|0,row|20,cacheid|,type|';     //这边加个 type 实现 在子栏目下调用   同级子栏目的

然后查找:

if($typeid==0 || $typeid=='top') {
        $tpsql = " reid=0 AND ispart<>2 AND ishidden<>1 AND channeltype>0 ";
}

修改为:

 

if($type=='reid')    //调用上级目录下的子栏目内容
{        
        $reid = $refObj->TypeLink->TypeInfos['reid']; //同级下的栏目
        //$reid = $refObj->TypeLink->TypeInfos['id']; //同级下的子栏目      
        $tpsql = " reid='$reid' AND ispart<>2 AND ishidden<>1 ";
} else if ($typeid==0 || $typeid=='top') {
        $tpsql = " reid=0 AND ispart<>2 AND ishidden<>1 AND channeltype>0 ";
}

 

保存上面文件。然后在列表页或者内容页使用:

{dede:channelartlist type='reid' row='5'}
底层循环代码
{/dede:channelartlist} 

就可以方便调用了。

 

posted @ 2021-12-05 17:00  心无引擎,眼无流派  阅读(72)  评论(0编辑  收藏  举报