织梦DedeCMS网站栏目调用对应文章数的方法如下所示:

在做dedecms模板时,经常需要为每个栏目加上此栏目的文章数。

我根据查找其它模板,或者搜索论坛找到一个好方法。供朋友使用。 内容来自织梦模板

此方法适合5.6及5.7 其它未测。

修改 include/common.func.php文件,在最后加上下面的代码:

//统计栏目文章数  

function GetTotalArc($tid){  

  global $dsql;  

  $sql = GetSonIds($tid);  

  $row = $dsql->GetOne("Select count(id) as dd From dede_archives where typeid   

in({$sql})");  

  return $row['dd'];  

}  

 //统计当前栏目信息数   

function dynamic_num($current_id){   

global $dsql;   

//读取当前栏目的子ID   

$sql = "SELECT id FROM `dede_arctype` WHERE id='$current_id' ||   

topid='$current_id'";   

$dsql->SetQuery($sql);   

$dsql->Execute();   

while($row = $dsql->GetArray()){   

 $arr[]=$row[id];   

}   

foreach($arr as $key=>$value){   

   $type .= $value . ',';   

}   

$ty= "".$type."0";   

//echo $ty;   

$t_num = $dsql->GetOne("select count(*) as num from `dede_archives` where typeid   

in($ty)");   

//echo $t_num[num];   

if(is_array($t_num)){   

  return " ".$t_num[num]." ";   

}else{   

  return "0" ;   

}   

模板里的调用代码:  

 

(该类拥有{dede:type}[field:id function="dynamic_num(@me)" /]{/dede:type}个文档)

和[field:ID runphp='yes'] @me = GetTotalArc(@me);[/field:ID]

例如:

{dede:field name='typename'/}</b>(该类拥有{dede:type}[field:id 

function="dynamic_num(@me)" /]{/dede:type}个文档)

{dede:channel type='son' } 

 

<li><a href='[field:typelink/]'>[field:typename/]</a>(<span>[field:ID 

runphp='yes'] @me = GetTotalArc(@me);[/field:ID]</span>)</li>

{/dede:channel}