有没有办法获得 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() 将其粘附到字符串上。
我在 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() 将其粘附到字符串上。