php,,
“,,6. 保存修改后的模板文件,然后刷新网站前台页面,你应该能看到文章数统计已经成功添加到相应栏目中。在DedeCMS中实现栏目文章数统计功能,可以通过多种方法来实现,以下是两种常用的方法及其具体步骤:
方法一:通过include/common.func.php文件添加函数
1、涉及文件:include/common.func.php
2、代码实现:
在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']; }
3、调用方法:
在模板文件中,可以使用以下代码来显示每个栏目的文章总数:
{dede:type}[field:ID function='GetTotalArc(@me)'/]{/dede:type}篇
或者在栏目名称后面显示:
{dede:type}[field:ID runphp='yes'] @me = GetTotalArc(@me);[/field:ID]{/dede:type}
方法二:通过include/inc_arcpart_view.php文件修改函数
1、涉及文件:include/inc_arcpart_view.php
2、代码实现:
找到ParseTemplet()
函数,并在其中添加以下代码:
if(!is_array($this>dtp>CTags)) return ""; foreach($this>dtp>CTags as $tagid=>$ctag) { $tagname = $ctag>GetName(); //countclass 统计栏目文章数量 if( $tagname == "countclass" ) { $tid = $ctag>GetAtt("typeid"); $row = $this>dsql>GetOne("Select count(ID) as dd From dede_archives where typeid='$tid' and arcrank<>1"); $this>dtp>Assign($tagid,$row['dd']); } }
3、调用方法:
在模板文件中,可以使用以下代码来显示每个栏目的文章总数:
{dede:countclass typeid=栏目ID/}
{dede:countclass typeid='2'/}
表格归纳
方法 | 涉及文件 | 代码实现 | 调用方法 |
方法一 | 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']; } | {dede:type}[field:ID function='GetTotalArc(@me)'/]{/dede:type}篇 或{dede:type}[field:ID runphp='yes'] @me = GetTotalArc(@me);[/field:ID]{/dede:type} |
方法二 | include/inc_arcpart_view.php | 修改ParseTemplet() 函数,添加统计代码段 | {dede:countclass typeid=栏目ID/} |
FAQs
问题1:如何在首页模板上显示每个栏目的文章总数?
答:可以在首页模板中使用如下代码来显示每个栏目的文章总数:
{dede:channel type='top' typeid=''} <a href='[field:typelink /]'>[field:typename/]</a> ([field:ID runphp='yes'] @me = GetTotalArc(@me);[/field:ID]) {/dede:channel}
这段代码会在每个栏目名称后面显示其包含的文章总数。
问题2:如何在不同的页面模板中调用这个统计功能?
答:可以在任何需要显示栏目文章总数的模板中插入相应的代码。
在列表页模板中,使用runphp='yes'
参数:
{dede:field.typeid runphp='yes'} global $dsql; $row = $dsql>GetOne("select count(*) as dd from dede_archives where typeid = @me"); @me = $row['dd']; {/dede:field.typeid}
在自定义位置显示栏目文章总数,可以使用{dede:countclass typeid=栏目ID/}
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1221081.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复