我正在使用插件WooCommerce Variation Swatches and Photos,它允许我为产品的属性添加缩略图。
我需要列出模板上的所有属性,我还希望得到并显示缩略图。
true
缩略图功能在WooCommerce中不是默认功能,因此当我print_r $ term时,没有缩略图网址:
MyDTO
如何获取属性的缩略图?
答案 0 :(得分:1)
产品类别术语 'product_cat'
分类的经典方法是:
$terms = get_terms( array(
'taxonomy' => 'product_cat',
'hide_empty' => false,
) );
foreach ( $terms as $term ) {
$thumb_id = get_woocommerce_term_meta( $term->term_id, 'thumbnail_id', true );
$img_src = wp_get_attachment_url( $thumb_id );
echo '<p><img src="'.$img_src.'" alt="" />'.$tem->name.'</p>';
}
因此可能会将分类标准更改为
'pa_texture'
等产品属性,它应该可以解决问题(我希望,但我不确定因为我不使用 Variation Swatches and Photos插件)。
答案 1 :(得分:1)
这是未经测试的,但以下的某些变体应该有效:
foreach ( $terms as $key => $term ) {
$thumbnail_id = get_woocommerce_term_meta( $term->term_id, $term->taxonomy . '_photo', true );
$terms[ $key ]->thumb = wp_get_attachment_image_src( $thumbnail_id );
print_r( $term );
}
如果查看the relevant plugin file,您可以看到作者如何获取图片。上面的代码基于此。
答案 2 :(得分:1)
感谢@ Und3rTow的输入找到了解决方案。
get_woocommerce_term_meta中的正确参数为pa_texture_swatches_id_photo
。
以下是最终代码:
$thumbnail_id = get_woocommerce_term_meta( $term->term_id, 'pa_texture_swatches_id_photo', true );
$textureImg = wp_get_attachment_image_src( $thumbnail_id ); ?>
<img src="<?php echo $textureImg[0]; ?>">
答案 3 :(得分:0)
在加售产品中显示图像时遇到了类似的问题。有一团糟,但是:
if ( $products_upsells->have_posts() ) : while ( $products_upsells->have_posts() ) : $products_upsells->the_post();
$_product = wc_get_product(get_the_ID());
$attributes = $_product->get_attributes();
$attr_id = $attributes['pa_kolor']['options'][0];
$thumb_id = get_term_meta($attr_id);
$img_src = wp_get_attachment_url($thumb_id['pa_kolor_swatches_id_photo'][0] );
echo '<img src="'.$img_src.'" alt="" />';
endwhile; endif;
wp_reset_query();
请参阅此代码:
$_product = wc_get_product(get_the_ID());
$attributes = $_product->get_attributes();
$attr_id = $attributes['pa_kolor']['options'][0];
$thumb_id = get_term_meta($attr_id);
$img_src = wp_get_attachment_url($thumb_id['pa_kolor_swatches_id_photo'][0] );