我们目前正在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