• 设为首页
  • 收藏本站
  • 积分充值
  • VIP赞助
  • 手机版
  • 微博
  • 微信
    微信公众号 添加方式:
    1:搜索微信号(888888
    2:扫描左侧二维码
  • 快捷导航
    福建二哥 门户 查看主题

    DEDECMS 获取当前栏目及所有子栏目的文章数量

    发布者: 山止川行 | 发布时间: 2025-7-24 15:26| 查看数: 95| 评论数: 0|帖子模式

    以下代码用来解决查询当前栏目及当前栏目下所有子栏目的文章总数,添加到/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 ishidden1 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)"/]

    来源:互联网
    免责声明:如果侵犯了您的权益,请联系站长(1277306191@qq.com),我们会及时删除侵权内容,谢谢合作!

    最新评论

    QQ Archiver 手机版 小黑屋 福建二哥 ( 闽ICP备2022004717号|闽公网安备35052402000345号 )

    Powered by Discuz! X3.5 © 2001-2023

    快速回复 返回顶部 返回列表