我不认为get_categories()
在这种情况下是最好的选择,因为它返回一个字符串,其中所有类别都列为锚定标记,很适合显示,但不适合在代码中确定类别是什么。好的,如果您还没有当前页面的product/post对象,那么首先需要抓取它:
global $post;
然后可以获取产品的产品类别术语对象(类别)。在这里,我将类别术语对象转换为一个名为
$categories
因此,更容易看到分配了哪些段塞。请注意,这将返回分配给产品的所有类别,而不仅仅是当前页面的类别,即如果我们在
/shop/audio/funzo/
:
$terms = wp_get_post_terms( $post->ID, \'product_cat\' );
foreach ( $terms as $term ) $categories[] = $term->slug;
然后,我们只需检查列表中是否有类别:
if ( in_array( \'audio\', $categories ) ) { // do something
总而言之:
<?php
global $post;
$terms = wp_get_post_terms( $post->ID, \'product_cat\' );
foreach ( $terms as $term ) $categories[] = $term->slug;
if ( in_array( \'audio\', $categories ) ) {
echo \'In audio\';
woocommerce_get_template_part( \'content\', \'single-product\' );
} elseif ( in_array( \'elektro\', $categories ) ) {
echo \'In elektro\';
woocommerce_get_template_part( \'content\', \'single-product\' );
} else {
echo \'some blabla\';
}
希望这就是你想要的,并回答了你的问题。