有没有办法获得 woocommerce 产品的所有类别 slug

Is there a way to get all the category slug of a woocommerce product

我在 wordpress 上使用 Isotope 和 Woocommerce 制作一个包含类别的动态产品画廊,我使用他们的类别 slug 对产品进行排序,但是当一个产品有多个类别时,我无法找到获取另一个类别的方法类别,此时我什至不确定这是否可能。

我试图用 $product->get_categories(); 获取类别而不是 slug,但它 returns 一个 <a href> 中包含类别。

function gallery(){

    Print "<div class='button-group filter-button-group'>
            <button data-filter='*' >show all</button>
            <button data-filter='.music-album'>Music</button>
            <button data-filter='.movie-soundtrack'>Movies</button>
            <button data-filter='.game-soundtrack'>Games</button>
            </div>";
    Print"<div class='row'>";

    $products= new WP_Query(['post_type'=>'product']);

    if($products->have_posts()) : while ($products->have_posts()) : $products->the_post();

        $product_cats = wp_get_post_terms( get_the_ID(), 'product_cat' );
        $single_cat = array_shift( $product_cats );
        $category = $single_cat->slug.' '; // IF POSSIBLE : I want here to get all the slug of the actual product on the loop

        Print"<a class='grid-item ".$category."' href='".get_the_permalink()."'>";
        Print"<div class='card grid-item".$category."'>";
            Print"<img class='card-img-top'src='".get_field('image')."'alt='' width='200' height='200'>";
            Print"<h1 class='card-body'>"; the_title(); Print"</h1>";
        Print"</div>";
        Print"</a>";


    endwhile;endif; 

    Print"</div>";

}

所以理想情况下,我希望 $category 变量等于 category_slug1 category_slug2 category_slug3 .... 之类的值,如果产品有 10 个类别,我希望它能找到所有类别。

$slugs = array();
$product_cats = wp_get_post_terms( get_the_ID(), 'product_cat' );
foreach ($product_cats as $product_cat){
    $slugs[] = $product_cat->slug;
}

这会将所有 slug 添加到 slugs 数组中。然后,您可以使用 implode() 将其粘附到字符串上。