WordPress获取指定/当前分类目录的文章数量

获取指定或当前分类目录的文章数量总数这个功能,在开发 WordPress主题中经常会用到。

这个常用的功能也是非常容易实现的,下面分享几种实现方法

首获取当前文章数量

<?php
    global $wp_query;
    $cat_ID = get_query_var(\'cat\');
    $category = get_category($cat_ID);
    echo $category->count;
?>

使用方法

在需要获取当前文章数量的页面使用上面代码

//以上代码中,最后的count,也可以换成slug,就是输出分类别名。
echo $category->slug;

解析:
get_cat_ID()    根据分类名称获取分类ID
get_cat_name()    根据分类ID获取分类名称
get_category_link()    根据分类ID获取分类的链接URL

获取某个分类的文章数量

1、使用 WordPress的内置函数 get_posts()

<?php
$posts = get_posts( \'numberposts=-1&category=3\' );
echo count($posts);
?>

2、使用WordPress的内置函数 get_category_by_slug()

<?php
// 将下面\'category-name\'改成你的分类别名即可
echo get_category_by_slug(\'category-name\')->count;
?>

3、 使用 WordPress的内置函数 get_category()

<?php
// 将以下\'cat_ID\'改成你的分类ID即可
echo get_category(cat_ID)->count;
?>

4、 使用 wpdb 直接查询数据库

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);
    }
}

第4种方法的使用方法: 将上面代码添加在主题目录下的functions.php中, 然后在需要的地方调用下面三种函数:

// 1.在主循环中调出该函数,不提供参数,返回第一个分类的文章数

<?php echo wt_get_category_count(); ?>
// 2.提供数字参数,该数字为分类的 ID 号,则返回对应 ID 的分类的文章数:
// \'1\'为你的分类ID

<?php echo wt_get_category_count(1); ?>
// 3.提供分类别名做为参数,返回对应别名的分类文章数:
// \'hello-world\'为你的分类别名

<?php echo wt_get_category_count(\'hello-world\'); ?>

总结

个人建议使用WordPress内置函数get_category()获取某个分类的文章数量,也就是第3种方案。

发表回复

售后服务:

  • 售后服务范围 1、商业模板使用范围内问题免费咨询
    2、源码安装、模板安装(一般 ¥50-300)服务答疑仅限VIP用户
    3、单价超过200元的模板免费一次安装,需提供服务器信息。
    付费增值服务 1、提供dedecms模板、WordPress主题、discuz模板优化等服务请详询在线客服
    2、承接 WordPress、DedeCMS、Discuz 等系统建站、仿站、开发、定制等服务
    3、服务器环境配置(一般 ¥50-300)
    4、网站中毒处理(需额外付费,500元/次/质保三个月)
    售后服务时间 周一至周日(法定节假日除外) 9:00-23:00
    免责声明 本站所提供的模板(主题/插件)等资源仅供学习交流,若使用商业用途,请购买正版授权,否则产生的一切后果将由下载用户自行承担,有部分资源为网上收集或仿制而来,若模板侵犯了您的合法权益,请来信通知我们(Email: 645876098@qq.com),我们会及时删除,给您带来的不便,我们深表歉意!

Hi, 如果你对这款模板有疑问,可以跟我联系哦!

联系作者
赞助VIP 享更多特权,建议使用 QQ 登录
喜欢我嘛?喜欢就按“ctrl+D”收藏我吧!♡