首先,定义实现函数,将以下php代码复制到当前主题的functions.php中:
- function ludou_get_cat_postcount($id) {
- // 获取当前分类信息
- $cat = get_category($id);
- // 当前分类文章数
- $count = (int) $cat->count;
- // 获取当前分类所有子孙分类
- $tax_terms = get_terms('category', array('child_of' => $id));
- foreach ($tax_terms as $tax_term) {
- // 子孙分类文章数累加
- $count +=$tax_term->count;
- }
- return $count;
- }
好了,函数定义完毕,在使用的时候只需给ludou_get_cat_postcount函数传递分类id参数即可,下面是使用示例:
- <?php
- echo 'ID为123的分类及其子孙分类的文章数量为:' . ludou_get_cat_postcount(123);
- ?>
获取某个分类下的文章数,代码如下:
- <?php echo get_category_by_slug($category_nickname)->count; ?>
- <?php echo get_category($category_ID)->count; ?>
获取其它分类,代码如下:
- <?php
- $cat = get_category_by_slug($category_nickname);
- //$cat = get_category($category_ID);
- echo $cat->term_id;//取得分类id
- echo $cat->count;//取得分类文章数统计
- echo $cat->description;//获取分类的描述
- echo $cat->name;//获得分类的名称
- echo $cat->slug;//获取分类的别名
- echo $cat->parent;//获得对当前分类的父级分类的引用
- ?>
获取特定分类文章数,将以下PHP代码放置在主题目录下的functions.php中:
- function wt_get_category_count($input = '') {
- global $wpdb;
- if($input == '') {
- $category = get_the_category();
- return $category[0]->category_count;
- }
- elseif(is_numeric($input)) {
- $SQL = "SELECT $wpdb->term_taxonomy.count FROM $wpdb->terms, $wpdb->term_taxonomy WHERE $wpdb->terms.term_id=$wpdb->term_taxonomy.term_id AND $wpdb->term_taxonomy.term_id=$input";
- return $wpdb->get_var($SQL);
- }
- else {
- $SQL = "SELECT $wpdb->term_taxonomy.count FROM $wpdb->terms, $wpdb->term_taxonomy WHERE $wpdb->terms.term_id=$wpdb->term_taxonomy.term_id AND $wpdb->terms.slug='$input'";
- return $wpdb->get_var($SQL);
- }
- }
在主循环中调出该函数,且不提供参数,则返回第一个分类的文章数,代码如下:
<?php echo wt_get_category_count(); ?>
2、提供的参数为数字,且该数字为分类的ID号,则返回对应ID的分类的文章数,代码如下:
<?php echo wt_get_category_count(1); ?>
3、提供分类的别名,则返回对应缩略名(别名)的分类文章数,代码如下:
<?php echo wt_get_category_count('hello-world'); ?>
该函数对于含有子分类的分类,文章数统计上会有稍许误差,对于分类文章数为0的情况统计得也不是很好.
新闻热点
疑难解答
图片精选