在Magento中最多只能获得3个媒体库图像getMediaGalleryImages


Only get a maximum of 3 media gallery images getMediaGalleryImages in Magento

我们目前正在Magento主页上使用以下方法加载产品的媒体库图像:-

<?php $_images = Mage::getModel('catalog/product')->load($product->getId())->getMediaGalleryImages(); ?>    
<?php if($_images){?>            
    <?php $i=0; foreach($_images as $_image){ $i++; ?>
        <img class="gallery" src="<?php echo $this->helper('catalog/image')->init($product, 'thumbnail', $_image->getFile())->resize(255); ?>" alt="<?php echo $this->htmlEscape($_image->getLabel());?>" title="<?php $this->htmlEscape($_image->getLabel());?>" />
    <?php } ?>
<?php } ?>

这将获得该产品的所有媒体库图像,但我们最多只希望获得3张。请有人建议如何改写上面的内容,只得到3个?

我不确定打破foreach循环是否是最好的方法,因此我曾尝试过:-

<?php if (++$i == 3) break; ?>

但这似乎并不一致,只返回最多3个。

提前谢谢。

设法通过玩创意来获得一些效果:-

更改:-

<?php $i=0; foreach($_images as $_image){ $i++; ?>

收件人。。。

<?php $i=0; foreach($_images as $_image) if ($i++ < 5) { $i++; ?>

foreach循环中的这个if语句确保循环中最多只返回三个。

(我不知道为什么,因为对我来说,这看起来像是如果值大于5)。

在循环之前使用PHP的原生array_slice函数。以下内容将返回最多3个,并且您不会浪费时间在不必要的元素中循环。

array_slice($_images, 0, 3)

http://php.net/manual/en/function.array-slice.php