【问题标题】:Get URL of variation image thumbnails in WooCommerce在 WooCommerce 中获取变体图像缩略图的 URL
【发布时间】:2020-01-21 14:07:35
【问题描述】:

我正在使用以下代码来获取特定产品的每个变体的图像:

$product = new WC_Product_Variable( $product_id );
$variations = $product->get_available_variations();

foreach ( $variations as $variation ) {
  echo "<img src=" . $variation['image']['url'] .">";
}

这将返回完整大小的图像。

谁能告诉我如何修改它以返回“缩略图”网址?(或任何其他大小)

我确定这是一个相当简单的更改,但我就是想不通。

【问题讨论】:

    标签: php wordpress woocommerce


    【解决方案1】:

    使用 thumb_src 代替 url。

    $product = new WC_Product_Variable( $product_id );
    $variations = $product->get_available_variations();
    
    foreach ( $variations as $variation ) {
      echo "<img src=" . $variation['image']['thumb_src'] .">";
    }
    

    【讨论】:

    • 如果您只想显示变体图像怎么办?这也获得了主要的父图像......
    • 这可能只是因为您使用相同的图像作为父产品图像和一些变体图像。
    【解决方案2】:

    如果您知道产品变体 ID,则可以这样做

    // find out $variation_id, it's different from product_id
    $variation = new WC_Product_Variation( $variation_id );
    $image_tag = $variation->get_image();
    
    // The below is the whole image tag including <img> and some classes that will help customize it.
    echo $image_tag;
    

    查看在 Woocommerce 参考中找到的 WC_product_variation 类和 WC_Product 类的相关文档。 get_image() 函数实际上继承自 WC_Product,但您可以在任一类中使用它。

    【讨论】:

      【解决方案3】:

      从 WooCommerce 3.0.0 版开始,您可以获得变体图像的 ID:

      $image_id = $variation->get_image_id();
      

      如果可用,这将返回变体图像 ID,否则,将返回主要产品图像 ID。可以在产品后端找到变体图像,如下图所示:

      然后,您可以使用此图像 ID 获取变体或产品缩略图的 URL:

      $image_array = wp_get_attachment_image_src($image_id, 'thumbnail');
      $image_src = $image[0];
      

      代码 sn-p 已经过测试并且可以工作。

      【讨论】:

        【解决方案4】:

        我有不同颜色和尺码的衣服。 是否可以省略尺寸只显示单色的缩略图

        目前,它以小号、中号和大号显示红色的缩略图。三个重复的缩略图。

        【讨论】:

        • 请单独或在 cmets 中发布您的问题(如果您希望更清楚)。
        猜你喜欢
        • 1970-01-01
        • 2012-11-16
        • 1970-01-01
        • 2019-02-04
        • 2017-12-30
        • 2013-10-08
        • 1970-01-01
        • 2017-03-31
        • 1970-01-01
        相关资源
        最近更新 更多