获取 WooCommerce 中的所有产品类别

Posted

技术标签:

【中文标题】获取 WooCommerce 中的所有产品类别【英文标题】:Get all product categories in WooCommerce 【发布时间】:2019-09-03 04:03:31 【问题描述】:

我正在尝试在 WooCommerce 中获取产品类别,但 get_terms() 功能对我不起作用。我得到一个空数组。

我做错了什么?如何获取所有 Woocommerce 产品类别术语?

【问题讨论】:

【参考方案1】:

产品类别是 WooCommerce 产品使用的“自定义分类”product_cat

您需要使用get_terms(),并带有正确的分类法,这样:

// Get Woocommerce product categories WP_Term objects
$categories = get_terms( ['taxonomy' => 'product_cat'] );

// Getting a visual raw output
echo '<pre>'; print_r( $categories ); echo '</pre>';

您还可以使用get_terms() 获取空的产品类别,例如:

$categories = get_terms( ['taxonomy' => 'product_cat', 'hide_empty' => false] );

经过测试并且可以工作(WordPress 3.5+ 和 WooCommerce 2.4+)……两者都应该适合您。

你会得到类似的东西:

Array
(
    [0] => WP_Term Object
        (
            [term_id] => 83
            [name] => Uncategorized
            [slug] => uncategorized
            [term_group] => 0
            [term_taxonomy_id] => 83
            [taxonomy] => product_cat
            [description] => 
            [parent] => 0
            [count] => 5
            [filter] => raw
            [meta_value] => 1
        )

    [2] => WP_Term Object
        (
            [term_id] => 11
            [name] => Tshirts
            [slug] => tshirts
            [term_group] => 0
            [term_taxonomy_id] => 11
            [taxonomy] => product_cat
            [description] => 
            [parent] => 0
            [count] => 13
            [filter] => raw
            [meta_value] => 2
        )
    // … and so on …
)

【讨论】:

不工作。我得到这个 WP_Error 对象([errors] => Array([invalid_taxonomy] => Array ([0] => Invalid taxonomy.))[error_data] => Array ()) 抱歉,这段代码已经过测试并且可以工作...... woocommerce 类别的分类法是“product_cat”......所以你在某处搞混了。

以上是关于获取 WooCommerce 中的所有产品类别的主要内容,如果未能解决你的问题,请参考以下文章

如何在woocommerce中获取特定类别的所有产品?

从特定类别获取 WooCommerce 产品

如何从 WooCommerce 中的订单项中获取产品类别 ID

从 WordPress 获取 WooCommerce 产品类别

从 WooCommerce 中的当前产品类别中获取兄弟术语 ID 列表

ajax 上的 JS 警报添加到购物车以获取 Woocommerce 中的特定产品类别计数