织梦默认的channelartlist标签的调用结果没有排除指定typeid的栏目的功能,但是如果需要,我们可以自己通过修改文件来添加这样的功能,具体修改方法如下:

找到并打开/include/taglib/channelartlist.lib.php文件,在里面找到$attlist,将

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

修改为:

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

上面添加了一个所要排除typeid的参数——notypeid

然后在里面找到如下代码:

$dsql->SetQuery("Select id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath   from `dede_arctype` where $tpsql order by sortrank asc limit $totalnum");

在其前面添加(注意是在前面添加):

//排除指定栏目ID
if($notypeid!=0) {
     $tpsql = $tpsql."and not(id in($notypeid)) ";
}

修改完成后保存,然后在模板里面通过如下方法调用:

{dede:channelartlist typeid ='3' notypeid='14,15'}

其中notypeid='14,15'中的14,15为3的子栏目,这样就可以排除id为14和15的栏目内容调用了,这个如果大家有需要的可以试一试这个方法。