woocommerce 获取图片大小

woocommerce get image size

我试图在 woocommerce 的单个产品页面上获取与产品相关的所有图像的尺寸(大小)。 我需要 photoswipes 的值宽度和高度 "data-size" 值。

这就是我现在拥有的

<ul class="slides">
<?php
    $attachment_ids = $product->get_gallery_attachment_ids();
    $attachment_first[0] = get_post_thumbnail_id( $product->id );
    $attachment = wp_get_attachment_image_src( $attachment_first[0], 'full' );
    $img_size = wc_get_image_size( $attachment_ids, 'full' );
    $w = $img_size['width'];
    $h = $img_size['height'];
    $size = $w .'x'. $h;
?>
    <li class="picture">
        <figure itemprop="associatedMedia" itemscope itemtype="http://schema.org/ImageObject">
            <a href="<?php echo $attachment[0]; ?>" itemprop="contentUrl" data-size="<?php echo $size; ?>">
                <img src="<?php echo $attachment[0]; ?>" itemprop="image" />
                <?php echo $size; ?>
            </a>
        </figure>
    </li>
<?php
    foreach( $attachment_ids as $attachment_id ){
        $src_url = wp_get_attachment_url( $attachment_id );
        echo '<li class="picture"><figure itemprop="associatedMedia" itemscope itemtype="http://schema.org/ImageObject"><a href="' . $src_url . '" itemprop="contentUrl" data-size="' . $size . '"><img src="' . $src_url . '" itemprop="image" />'.$size .'</a></figure></li>';
    }
?>
</ul>

它正确获取了所有图像,但宽度和高度值不正确。我知道我正在测试的产品的完整图像是 800x800。如果我删除

中的“$attachment_ids”

wc_get_image_size( $attachment_ids, 'full' );

那么这个值就变成了300x300。

我真的需要找到一种简单的方法来从 woocommerce 获取全尺寸图像的实际尺寸。 我原以为这个任务会更简单 :P

Nwm,用这个解决了它(对于搜索这个的其他人)

<ul class="slides">
<?php
    $attachment_ids = $product->get_gallery_attachment_ids();
    $attachment_first[0] = get_post_thumbnail_id( $product->id );
    $attachment = wp_get_attachment_image_src( $attachment_first[0], 'full' );
    $w = $attachment[1];
    $h = $attachment[2];
    $size = $w .'x'. $h;
?>
    <li class="picture">
        <figure itemprop="associatedMedia" itemscope itemtype="http://schema.org/ImageObject">
            <a href="<?php echo $attachment[0]; ?>" itemprop="contentUrl" data-size="<?php echo $size; ?>">
                <img src="<?php echo $attachment[0]; ?>" itemprop="image" />
            </a>
        </figure>
    </li>
<?php
    foreach( $attachment_ids as $attachment_id ){
        $src_url = wp_get_attachment_url( $attachment_id );
        $attachments = wp_get_attachment_image_src( $attachment_id, 'full' );
        $wp = $attachments[1];
        $hp = $attachments[2];
        $sizes = $wp .'x'. $hp;
        echo '<li class="picture"><figure itemprop="associatedMedia" itemscope itemtype="http://schema.org/ImageObject"><a href="' . $src_url . '" itemprop="contentUrl" data-size="' . $sizes . '"><img src="' . $src_url . '" itemprop="image" /></a></figure></li>';
    }
?>
</ul>