在wordpress后台添加的文章分类中每个父分类下有多个层级的子分类,而且需要将一个父分类下所有子分类的文章数目进行统计,之前做的时候都是一个分类,没有涉及到子分类。
所有统计方法很简单可以使用get_categories()这个函数就可以做到,但是呢要统计子分类下的文章数目,直接使用这个函数是做不了的,查了下资料找到的都是使用sql语句查询数据库来做的,而且都不能满足自己的要求。所有还是决定自己写一个出来。经过测试没有发现一些问题。而且可以对分类级数没有限制,也就是说不管你创建了多少个子分类,只要里面有文章都可以统计出来,只要我们在相应的添加代码即可。
根据以上思路实现的代码:
$parent_array = get_categories('hide_empty=0&parent=79'); //使用get_categories()函数,其中参数意思为hide_empty把子分类下没有文章的也显示出来 //parent 父级分类的id号 foreach($parent_array as $k=>$v) //第一步 { $sub_parent_array = get_categories('parent='.$v->cat_id); foreach($sub_parent_array as $kk=>$vv) //第二步 { // www.jb200.com $three_parent_array = get_categories('hide_empty=0&parent='.$vv->cat_id); foreach($three_parent_array as $kkk=>$vvv) //第三步 { $three_count +=$vvv->category_count; //第三极子分类下文章数进行统计 } $sub_count +=$vv->category_count; //第二级子分类下文章数进行统计 } $count +=$v->category_count; //第一级子分类下文章数进行统计 } $total = $count+$sub_count+$three_count; //将第一级和第二级和第三级统计的文章数目进行相加后放到一个变量中。
以上代码通过php的foreach循环,将一个分类下的文章数目统计出来。
如果遇到第四级时,只需要按照上面的做法在操作一次即可。