当前位置:首页 > 行业动态 > 正文

如何在Dedecms列表页模板中获取当前栏目的文章数量?

在DedeCMS列表页模板中,可以使用以下代码调用当前栏目文章数:,,“ php,{dede:field name='total'/},

DedeCMS中,要在列表页模板中调用当前栏目文章数,可以通过修改include/common.func.php文件来添加自定义函数,具体步骤如下:

修改 include/common.func.php 文件

1、统计当前栏目文章数

   // 统计当前栏目文章数
   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、统计包括子栏目的文章数

   // 统计包括子栏目的文章数
   function dynamic_num($current_id){
       global $dsql;
       // 读取当前栏目的子ID
       $sql = "SELECT id FROMdede_arctype WHERE id='$current_id' OR topid='$current_id'";
       $dsql>SetQuery($sql);
       $dsql>Execute();
       while($row = $dsql>GetArray()){
           $arr[]=$row[id];
       }
       foreach($arr as $key=>$value){
           $type .= $value . ',';
       }
       $ty = rtrim($type, ',');
       //echo $ty;
       $t_num = $dsql>GetOne("select count(*) as num fromdede_archives where typeid in($ty)");
       //echo $t_num[num];
       if(is_array($t_num)){
           return "本栏目共有".$t_num[num]."篇文章";
       }else{
           return "本栏目共有0篇文章" ;
       }
   }

模板中的调用代码

在模板文件中,可以使用以下代码来显示当前栏目的文章数:

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

或者:

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

通过以上方法,可以在DedeCMS的列表页模板中成功调用并显示当前栏目的文章数量,从而增强用户体验和网站的信息展示效果。

0