现在,下面的函数输出产品的所有变体图像。E、 g.3倍蓝色(S、M、L号),3倍红色(S、M、L号)
我想下面的功能只输出唯一的彩色图像。E、 g.1个蓝色,1个红色
尝试在回显字符串中使用array\\u unique,但无法使其正常工作。
谢谢你的帮助。
function loop_display_variation_attribute_and_thumbnail() {
global $product;
if( $product->is_type(\'variable\') ){
foreach ( $product->get_visible_children() as $variation_id ){
// Get an instance of the Product_Variation object
$variation = wc_get_product( $variation_id );
// Get "color" product attribute term name value
$color = $variation->get_attribute(\'pa_color\');
if( ! empty($color) ){
// Display "color" product attribute term name value
echo $color;
// Display the product thumbnail with a defined size (here 30 x 30 pixels)
echo $variation->get_image( array(30, 30) );
}
}
}
}
最合适的回答,由SO网友:mozboz 整理而成
这是一个PHP编程问题,而不是Wordpress特有的问题,但您可以这样做。
这会跟踪$shownColors数组中显示了哪些颜色,并且不会两次显示相同的颜色。
function loop_display_variation_attribute_and_thumbnail() {
global $product;
if( $product->is_type(\'variable\') ){
$shownColors = Array();
foreach ( $product->get_visible_children() as $variation_id ){
// Get an instance of the Product_Variation object
$variation = wc_get_product( $variation_id );
// Get "color" product attribute term name value
$color = $variation->get_attribute(\'pa_color\');
if( ! empty($color) && !in_array($color, $shownColors) ){
// Display "color" product attribute term name value
echo $color;
// Display the product thumbnail with a defined size (here 30 x 30 pixels)
echo $variation->get_image( array(30, 30) );
$shownColors[] = $color; // add this to colors we\'ve shown
}
}
}
}