网上流传的都是织梦早期版本的{dede:channel type=’parent’}{dede:channel}代码,5.6版之后就不能用,最近因为要实现类似的样式,网上找了半天,都做不出效果来,就自 己看了看代码,发现5.6版的由于官方的代码文档组织结构发生变化。所以5.6版,需要按照以下的方式更改,才可以实现{dede:channel type=’parent’}这样格式的调用。
大家首先找到include/taglib/channel.lib.php文件,找到59行,代码如下:
else if($type=='self') { if($reid==0) return ''; $sql = "Select id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath From `dede_arctype` where reid='$reid' And ishidden<>1 order by sortrank asc limit 0, $line "; } |
在此段代码之后,添加:
else if($type=='parent') { //新增代码 获得上级栏目 $sql="Select id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl From dede_arctype where reid='$topid' And ishidden<>1 order by sortrank asc limit 0,$line"; } |
接下来继续往后找到代码:
//处理同级栏目中,当前栏目的样式 if( ($row['id']==$typeid || ($topid==$row['id'] && $type=='top') ) && $currentstyle!='' ) |
修改为:
//处理同级栏目中,当前栏目的样式 if( ($row['id']==$typeid || ($topid==$row['id'] && $type=='top') || ($row['id']==$reid && $type=='parent' )) && $currentstyle!='' ) |
到此代码的修改完毕,大家可以试验一下。