使用織夢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'];
$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}
就可以方便調用了。
部分四路參考自:必學智庫