从WooCommerce的产品中获取画廊图片?

时间:2017-08-20 作者:Shahzaib Khan

正在寻找一个代码,它可能会帮助我获得woocommerce中产品中存在的画廊图像列表。

需要它们,以便我可以在woocommerce产品页面的自定义单页设计中使用它们。

3 个回复
SO网友:Md.Mehedi hasan
<?php
$product_id = \'14\';
$product = new WC_product($product_id);
$attachment_ids = $product->get_gallery_image_ids();

foreach( $attachment_ids as $attachment_id ) 
    {
      // Display the image URL
      echo $Original_image_url = wp_get_attachment_url( $attachment_id );

      // Display Image instead of URL
      echo wp_get_attachment_image($attachment_id, \'full\');

    }?>
SO网友:Jacob Peattie

这个get_gallery_image_ids() 方法将返回一个图像ID数组。

global $product;
$gallery_images = $product->get_gallery_image_ids();
然后可以使用以下函数wp_get_attachment_image() 为每个ID获取HTML/URL等。

SO网友:user91030

如果您需要库中的所有图像,包括主图像,这是完整的功能:

    public function getAllProducts( $request ){
    $products = new WP_Query([
        \'post_type\' => \'post\'//,
            //\'show_product_on_only_premium\' => \'yes\',
        ]);

    $args = array(
        \'status\' => \'publish\',
    );
    $products = wc_get_products( $args );
    $tempArr = [];
    foreach($products as $product){
        $product_obj = json_decode($product-> __toString());
        $product_obj->img_src = wp_get_attachment_image_src($product_obj->image_id)[0];
        $images_ids = $product-> get_gallery_image_ids();

        $images_arr = [];
        for($i = 0, $j = count($images_ids); $i < $j;$i++ ){
            $image_query = wp_get_attachment_image_src($images_ids[$i]);
            $img = new StdClass;
            $img->src = $image_query[0];
            array_push($images_arr, $img);
        }
        $product_obj->gallery = $images_arr;
        array_push($tempArr, $product_obj);
    }
    return $tempArr;
} 
如果您想要这些变化:从:https://gist.github.com/Niloys7/17b88d36c1c38844a6cf2127c15dee63

<?php
global $product;
$attachment_ids = $product->get_gallery_attachment_ids();

foreach( $attachment_ids as $attachment_id ) 
{
  //Get URL of Gallery Images - default wordpress image sizes
  echo $Original_image_url = wp_get_attachment_url( $attachment_id );
  echo $full_url = wp_get_attachment_image_src( $attachment_id, \'full\' )[0];
  echo $medium_url = wp_get_attachment_image_src( $attachment_id, \'medium\' )[0];
  echo $thumbnail_url = wp_get_attachment_image_src( $attachment_id, \'thumbnail\' )[0];

  //Get URL of Gallery Images - WooCommerce specific image sizes
  echo $shop_thumbnail_image_url = wp_get_attachment_image_src( $attachment_id, \'shop_thumbnail\' )[0];
  echo $shop_catalog_image_url = wp_get_attachment_image_src( $attachment_id, \'shop_catalog\' )[0];
  echo $shop_single_image_url = wp_get_attachment_image_src( $attachment_id, \'shop_single\' )[0];

  //echo Image instead of URL
  echo wp_get_attachment_image($attachment_id, \'full\');
  echo wp_get_attachment_image($attachment_id, \'medium\');
  echo wp_get_attachment_image($attachment_id, \'thumbnail\');
  echo wp_get_attachment_image($attachment_id, \'shop_thumbnail\');
  echo wp_get_attachment_image($attachment_id, \'shop_catalog\');
  echo wp_get_attachment_image($attachment_id, \'shop_single\');
}
?>

结束

相关推荐