WooCommerce - 获取产品页面的类别

2022-08-30 10:01:57

对于我的WC产品页面,我需要向body标签添加一个类,以便我可以执行一些自定义样式。这是我为此创建的函数...

function my_add_woo_cat_class($classes) {

    $wooCatIdForThisProduct = "?????"; //help!

    // add 'class-name' to the $classes array
    $classes[] = 'my-woo-cat-id-' . $wooCatIdForThisProduct;
    // return the $classes array
    return $classes;
}

//If we're showing a WC product page
if (is_product()) {
    // Add specific CSS class by filter
    add_filter('body_class','my_add_woo_cat_class');
}

...但是我如何获得WooCommerce猫ID?


答案 1

一个WC产品可以不属于任何,一个或多个WC类别。假设您只想获得一个WC类别ID。

global $post;
$terms = get_the_terms( $post->ID, 'product_cat' );
foreach ($terms as $term) {
    $product_cat_id = $term->term_id;
    break;
}

请查看WooCommerce插件的“模板/单产品/”文件夹中的元.php文件。

<?php echo $product->get_categories( ', ', '<span class="posted_in">' . _n( 'Category:', 'Categories:', sizeof( get_the_terms( $post->ID, 'product_cat' ) ), 'woocommerce' ) . ' ', '.</span>' ); ?>

答案 2

$product->get_categories()自 3.0 版起已弃用!请改用。wc_get_product_category_list

https://docs.woocommerce.com/wc-apidocs/function-wc_get_product_category_list.html


推荐