如何获取与特定WooCommerce产品类别相关的所有属性及其术语

时间:2018-09-29 作者:stckvrw

正如我们所知,要将特定属性的术语添加到产品中,我们可以使用:

$attr_terms = $product->get_attribute( \'attr_slug\' );
或者获取特定属性的所有术语,而不管我们可以使用什么产品

$attr_terms = get_terms( \'pa_attr_slug\' );
但如何将所有属性及其术语添加到特定产品类别的产品中?

类似于:

$cat_attrs = ... ($cat->id);
foreach($cat_attrs as $cat_attr) {
    echo $cat_attr->name; // name of attribute
    foreach($cat_attr->terms as $term) {
        echo $term->name; // name of attribute term
    }
}

1 个回复
最合适的回答,由SO网友:stckvrw 整理而成

我找到了以下解决方案:

$args = array(
    \'category\'  => array( \'category_slug\' )
    // or \'term_taxonomy_id\' => 4 i.e. category ID
);

foreach( wc_get_products($args) as $product ){

    foreach( $product->get_attributes() as $attr_name => $attr ){

        echo wc_attribute_label( $attr_name ); // attr label
        // or get_taxonomy( $attr_name )->labels->singular_name;

        foreach( $attr->get_terms() as $term ){

            echo $term->name;
        }
    }
}

结束

相关推荐

对类别使用WP_QUERY而不是GET_TERMS

我已通过此功能从Woocommerce获取所有父类别$terms = get_terms( array( \'taxonomy\' => \'product_cat\', \'hide_empty\' => false, \'parent\' => 0 ) ); 但我还没有做到这一点WP_Query. 现在我有两个问题:如何使用WQ\\u Query从WooCommerce获取类别列表?建议使用WP\\u Query