You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何统计WooCommerce特定产品分类下的评论总数

如何统计WooCommerce特定产品分类下的评论总数

嗨,我完全懂你的困扰——想用get_comments()直接统计特定产品分类的评论总数,但发现这个函数根本不支持分类查询,对吧?确实,get_comments()的参数体系是围绕评论本身设计的,没法直接关联到关联产品的分类属性。不过我们可以换个思路:先拿到目标分类下的所有产品ID,再用这些ID过滤评论,就能得到精准的总数了。

直接给你调整后的代码,里面加了详细注释,你可以按需修改:

function rnr_colors_review_count() {
    // 替换成你要统计的产品分类slug,或者用分类ID的话看下面注释
    $target_category = 'your-category-slug'; 

    // 第一步:获取目标分类下的所有产品ID
    $products = get_posts(array(
        'post_type' => 'product',
        'posts_per_page' => -1, // 一次性获取该分类下所有产品
        'tax_query' => array(
            array(
                'taxonomy' => 'product_cat', // WooCommerce产品分类的默认taxonomy
                'field' => 'slug', // 如果用分类ID,改成'term_id'
                'terms' => $target_category, // 用ID的话就填数字,比如123
                'include_children' => true, // 要不要包含子分类的产品,默认true
            )
        ),
        'fields' => 'ids' // 只返回产品ID,减少查询负载,更高效
    ));

    // 如果分类下没有产品,直接显示0
    if (empty($products)) {
        echo 'Total Comments= 0';
        return;
    }

    // 第二步:用产品ID数组筛选并统计评论数
    $args = array(
        'post_type' => 'product',
        'status' => 'approve', // 只统计已审核的评论,要包含待审的改成'hold'或'all'
        'count' => true,
        'post__in' => $products // 指定只统计这些产品的评论
    );

    $comments_count = get_comments($args);
    echo 'Total Comments= ' . $comments_count;
}

几个关键的小提示:

  • 如果你的分类是用ID管理的,把tax_query里的field改成term_id,terms填对应的分类ID数字就行
  • include_children参数如果设为false,就只会统计当前分类下的直接产品,不会包含子分类的
  • 如果需要统计所有状态的评论(包括待审核、垃圾评论),把status改成'all'就行

备注:内容来源于stack exchange,提问作者AJD

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.21 08:08:06