在织梦CMS中调用父级栏目的链接和名称
织梦CMS调用父级栏目链接和名称的方法如下: 1. 在模板中,使用`[field:parentid runphp='yes']@me = (string)@me; [/field:parentid]`获取当前栏目的父级ID。 2. 使用`[field:parentid runphp='yes']@me = (array_search(@me,$menuarr)); [/field:parentid]`获取父级栏目在菜单数组中的索引。 3. 使用`[field:parentlink/]`获取父级栏目的链接。 4. 使用`[field:parentname/]`获取父级栏目的名称。
打开文件
/include/taglib/channel.lib.php
找到代码
1 | elseif ( $type == 'self' ){ if ( $reid ==0) return '' ; $sql = "SELECTid,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepathFROM`dede_arctype`WHEREreid='$reid'Andishidden<>1orderbysortrankasclimit0,$line" ;} |
在其后添加
1 | elseif ( $type == 'topone' ){ if ( $reid ==0) return '' ; $rowR = $dsql ->GetOne( "SELECT*FROM`dede_arctype`WHEREid='$typeid'" ); $topids = $rowR [ 'topid' ]; $sql = "SELECTid,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepathFROM`dede_arctype`WHEREreid='0'Andid='$topids'Andishidden<>1orderbysortrankasclimit0,$line" ;} elseif ( $type == 'fatherlist' ){ $rowR = $dsql ->GetOne( "SELECT*FROM`dede_arctype`WHEREid='$typeid'" ); $reid = $rowR [ 'reid' ]; $rowR = $dsql ->GetOne( "SELECT*FROM`dede_arctype`WHEREid='$reid'" ); $reid = $rowR [ 'reid' ]; $sql = "SELECTid,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepathFROM`dede_arctype`WHEREreid='$reid'Andishidden<>1orderbysortrankasclimit0,$line" ;} |
然后就可以在模板中调用父级栏目和父级顶级栏目了:
1 | {dede:channeltype= 'fatherlist' }[field:typename/]{/dede:channel}{dede:channeltype= 'topone' }[field:typename/]{/dede:channel} |