typecho统计当前分类和子分类文章总数

typecho教程 2020-08-25

  typecho发布一篇文章,然后只勾选子分类,然后发布。

  父分类输出分类文章数量,并没有包含这个新发布的文章

  于是乎,垃圾博主啊用了点时间(一个半小时)写出了个函数,来解决这个问题

  function fenleinum($id){

  $db = Typecho_Db::get();

  $po=$db->select(‘table.metas.count’)->from (‘table.metas’)->where (‘parent = ?’, $id)->orWhere(‘mid = ? ‘, $id);

  $pom = $db->fetchAll($po);

  $num = count($pom);

  $shu = 0;

  for ($x=0; $x

  $shu=$pom[$x][‘count’]+$shu;

  }

  echo $shu;

  }

  前台调用,可以在分类列表循环中输入下面代码,分类mid需要根据自己的代码自填

  

  原理,首先上一张数据库截图

  parent等于0的分类就是父分类,为x(x代表非零整数)的为mid等于x的分类的子分类

  count列则是分类的文章总数

  这样我们就可以根据规律进行查询计算了

  例如:

  我们要查询mid=1的分类文章数量包含当前分类及旗下的子分类?

  处理:

  搜索查询parent等于1的行和mid等于1的行

  然后读取每行count的值

  最后通过for循环将搜索到的行的count值想加,输出。

  额,因为是渣渣博主,所有方法可能不太文雅,用数据库语句将查询结果列相加比较好,但是博主不会,只好用for循环啦。

评论 (0)
    Top