【问题标题】:Get product variation images on Woocommerce shop page在 Woocommerce 商店页面上获取产品变体图像
【发布时间】:2014-05-06 03:27:46
【问题描述】:

我基本上想要实现的是在商店页面上显示产品变体图像(每个变体的特定图像)。我成功地使用下面的代码(放入“content-product.php”)获得了变体的名称:

<?php
$colourvalues = get_the_terms( $product->id, 'pa_colour');
  foreach ( $colourvalues as $colourvalue ) {
   echo $colourvalue->name;
  }
?>

不幸的是,$colouvalues 数组中没有任何内容是变体图像 url 或与图像相关的任何内容。

有人帮我解决这个问题吗?

【问题讨论】:

    标签: php wordpress image woocommerce variation


    【解决方案1】:

    在函数文件中

    add_action('woocommerce_after_shop_loop_item_title','woocommerce_template_single_excerpt', 5);
    function woocommerce_template_single_excerpt() {
                global $product;
                if ($product->product_type == "variable" && (is_shop() )) {
                  echo woocommerce_variable_product(); 
                }
    
     }
    

    【讨论】:

    • 提供的代码与问题无关(它不会按要求检索变体图像)。此外,Woocommerce 或 WP 中没有名为 woocommerce_variable_product() 的内置函数。就目前而言,这看起来像是自定义主题的functions.php文件中的随机复制粘贴。
    【解决方案2】:

    您可以获得产品变体的列表:

    // In the product loop:
    $variations = $product->get_available_variations();
    
    // Outside the product loop:
    $product = new WC_Product_Variable( $product_id );
    $variations = $product->get_available_variations();
    

    循环遍历它以从每个变体中获取图像,如下所示:

    foreach ( $variations as $variation ) {
        echo $variation['image_src'];
    }
    

    【讨论】:

    • 太棒了!如果您不确定产品是否可变,则必须先检查(例如 $product-&gt;get_type()),否则方法 get_available_variations() 可能不存在。
    【解决方案3】:

    对于 Woocommerce 3. 创建变体数组后,像这样循环。

    foreach ( $variations as $variation ) {
        echo $variation['image']['url'];
    }
    

    【讨论】:

    • 这会抓取原始图像 - 你将如何抓取缩略图?或者任何其他尺寸?
    • @Elvin85 已在此回答:link
    • 这仅适用于缩略图,对于其他尺寸,您可以获取附件 id,然后使用 wordpress 函数使用 $variation['image_id'] 处理附件
    猜你喜欢
    • 1970-01-01
    • 2014-05-27
    • 2017-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-24
    • 2018-11-13
    相关资源
    最近更新 更多