DEDECMS怎麼獲取當前欄目及所有子欄目的文章數量
阿新 • • 發佈:2021-06-26
DEDECMS怎麼獲取當前欄目及所有子欄目的文章數量?
以下程式碼用來解決查詢當前欄目及當前欄目下所有子欄目的文章總數,新增到/include/common.func.php
或者 /include/extend.func.php中,然後在模板中呼叫getTotalArcByTid(1)。
程式碼如下:
/* * 返回符合記錄的文章數量 * @description DEDE不允許執行子查詢,解決欄目下文章統計的問題 * @param $level 為真時查詢所有子類目 * */ function getTotalArcByTid($tid, $level=TRUE) { global $dsql;$level==TRUE && $tid = GetSonTypeID($tid); $sql = "SELECT count(id) as total from `dede_archives` where typeid in($tid)"; $result = $dsql->GetOne($sql); return $result['total']; } /* * 遞迴獲取符合條件的子欄目 * @param $tid 欄目ID * @return string * */ function GetSonTypeID($tid){ global $dsql;$dsql->SetQuery("Select id From `dede_arctype` where reid in($tid) And ishidden<>1 order by sortrank"); $dsql->Execute($tid); $typeid = ''; while($row=$dsql->GetObject($tid)){ $typeid .= "{$row->id},"; $typeid .= GetSonTypeID($row->id); } return trim($typeid,','); }
呼叫方法:
模板中呼叫的方法一般為:
{dede:field.typeid function="getTotalArcByTid(@me)"/}
或者
[field:typeid function="getTotalArcByTid(@me)"/]
以上就是DEDECMS怎麼獲取當前欄目及所有子欄目的文章數量的詳細內容。