在我们在制作dedecms模板的时候,通常会为了让网站美观,要在栏目导航处添加栏目文章数统计显示的代码,让页面显示每个栏目下的文章数量,如下图所示:
有两种方法可以解决这个问题:
第一种方法:
第1步:打开网站根目录下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'];
}
//统计结束
第2步: 然后在模板上使用以下代码
{dede:channel type='top' typeid=''}
<a href='[field:typelink /]'>[field:typename/]</a> ([field:ID runphp='yes'] @me = GetTotalArc(@me);[/field:ID])<br>
{/dede:channel}
比如在首页模板上栏目名称({dede:field name='typename'/})
后面添加如下代码:
{dede:type}[field:ID runphp='yes'] @me = GetTotalArc(@me);[/field:ID]{/dede:type}
第二种方法:
涉及到文件:根目录include/common.func.php
在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'];
}
调用方法是:
[field:ID function='GetTotalArc(@me)'/]
或者
[field:ID runphp='yes'] @me = GetTotalArc(@me);[/field:ID]
比如在你的网站模板里添加如下代码:
共{dede:type}[field:ID function='GetTotalArc(@me)'/] {/dede:type}篇
或在栏目名称后面添加如下代码:
({dede:type}[field:ID function='GetTotalArc(@me)'/] {/dede:type})