woocommerce - 如何获得当前产品类别的最顶级类别

2022-08-30 22:33:41

我有一个Woocommerce产品,我需要在该页面上显示分配给该产品的类别的最顶级类别

- Main Product Category
-- Sub Product Category
--- Category Assigned to product

我需要获取“主要产品类别”的 ID 或名称,以便可以在单个产品类别中显示它。

我已经尝试过执行以下操作:

global $post;
$terms = get_the_terms( $post->ID, 'product_cat' );

foreach ($terms as $term) {
$product_cat_id = $term->term_id;

$thetop_parent = woocommerce_get_term_top_most_parent( $product_cat_id , 'product_cat' );

echo $thetop_parent;
}

但它根本不起作用,并且在woocomerce_get_term后阻止了页面的加载...我不确定在这一点上该怎么办

感谢您对此的任何帮助。


答案 1

或者也许是这个:

$cat = get_the_terms( $product->ID, 'product_cat' );

foreach ($cat as $categoria) {
if($categoria->parent == 0){
   echo $categoria->name;
}
}

答案 2

经过大量的研究,我想出了一个解决这个问题的方法。我希望这将有助于某人。

溶液:

global $post;
$prod_terms = get_the_terms( $post->ID, 'product_cat' );
foreach ($prod_terms as $prod_term) {

    // gets product cat id
    $product_cat_id = $prod_term->term_id;

    // gets an array of all parent category levels
    $product_parent_categories_all_hierachy = get_ancestors( $product_cat_id, 'product_cat' );  



    // This cuts the array and extracts the last set in the array
    $last_parent_cat = array_slice($product_parent_categories_all_hierachy, -1, 1, true);
    foreach($last_parent_cat as $last_parent_cat_value){
        // $last_parent_cat_value is the id of the most top level category, can be use whichever one like
        echo '<strong>' . $last_parent_cat_value . '</strong>';
    }

}

推荐