织梦如何只调用一级栏目下文章而不调用其二级栏目?notypeid来实现

近日,聊城SEO在织梦建站时发现,在首页调用一级栏目下文章时,同时包含了其下二级栏目内的文章,而首页也同时调用了该二级栏目下的文章,这样就造成了调取了重复的内容,那么怎么让织梦只调用一级栏目下文章而不调用其二级栏目下的文章呢?其实,只要改改代码,使织梦article标签增加notypeid属性,就可以实现在多栏目调用的时候排除不需要的栏目。

织梦如何只调用一级栏目下文章而不调用其二级栏目?notypeid来实现

织梦如何只调用一级栏目下文章而不调用其二级栏目?notypeid来实现

打开/include/taglib/arclist.lib.php文件,找这段代码(大概在130行):

return lib_arclistDone ( $refObj, $ctag, $typeid, $ctag->GetAtt('row'), $ctag->GetAtt('col'), $titlelen, $infolen, $ctag->GetAtt('imgwidth'), $ctag->GetAtt('imgheight'), $listtype, $orderby, $ctag->GetAtt('keyword'), $innertext, $envs['aid'], $ctag->GetAtt('idlist'), $channelid, $ctag->GetAtt('limit'), $flag,$ctag->GetAtt('orderway'), $ctag->GetAtt('subday'), $ctag->GetAtt('noflag'), $tagid,$pagesize,$isweight );

在最后括号最后加上(注意前面的逗号):

,$ctag->GetAtt('notypeid')

然后再找到这一段代码(大概在168行):

function lib_arclistDone(&$refObj, &$ctag, $typeid=0, $row=10, $col=1, $titlelen=30, $infolen=160, $imgwidth=120, $imgheight=90, $listtype='all', $orderby='default', $keyword='', $innertext='', $arcid=0, $idlist='', $channelid=0, $limit='', $att='', $order='desc', $subday=0, $noflag='',$tagid='', $pagesize=0, $isweight='N',$notypeid=0)

在括号的最后加上(注意前面的逗号):

,$notypeid=0

最后再找到这一句:

$orwheres[] = ' arc.arcrank > -1 ';

在其前面增加以下代码:

if(!empty($notypeid)) {
$orwheres[] = " and arc.typeid NOT IN (".GetSonIds($notypeid).")";
}

这样,代码就修改完毕了。保存之后就在arclist标签里试试看notypeid属性吧。对于网站栏目多,内容显示时又错综复杂的情况,这样的属性还是蛮实用的。

原创文章,作者:聊城SEO,如若转载,请注明出处:http://www.lcseo.cn/dedecms/172.html

发表评论

登录后才能评论

联系我们

在线咨询:点击这里给我发消息

邮件:admin@lcseo.cn

工作时间:周一至周五,9:00-18:00,节假日休息

QR code