我想在wooccommerce单一产品页面中将类别图像显示为横幅。我使用的是这个代码,但它显示了所有的类别图像。
if(is_single()) {
$terms = get_the_terms( $post->ID, 'product_cat' );
foreach ( $terms as $term ){
$category_name = $term->name;
$category_thumbnail = get_woocommerce_term_meta($term->term_id, 'thumbnail_id', true);
$image = wp_get_attachment_url($category_thumbnail);
echo '<img class="absolute '.$category_name.' category-image" src="'.$image.'">';
}
}
我只想显示类别图像。当我点击产品时,它会将其类别图像显示为横幅。
代码中的问题:您在编码中所做的是,您正在获取与产品相关的所有术语(get_the_terms)。这就是它显示所有图像的原因。
解决方案:您可以change your code
获取特定产品的横幅图像,也可以简单地放置dummy condition
仅获取一个图像。
伪条件代码:
if(is_single()) {
$terms = get_the_terms( $post->ID, 'product_cat' );
$i=0; //Variable for dummy condition
foreach ( $terms as $term ){
if($i==0): //Dummy Condition
$category_name = $term->name;
$category_thumbnail = get_woocommerce_term_meta($term->term_id, 'thumbnail_id', true);
$image = wp_get_attachment_url($category_thumbnail);
echo '<img class="absolute '.$category_name.' category-image" src="'.$image.'">';
$i++; //Increment it to make condition false
endif;
}
}
如果你有任何疑问,请告诉我。
您选择子类别,为什么显示所有类别图像