我们目前正在使用以下内容在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个。
提前致谢。
答案 0 :(得分:0)
通过玩弄想法来管理工作: -
发生变化: -
<?php $i=0; foreach($_images as $_image){ $i++; ?>
要...
<?php $i=0; foreach($_images as $_image) if ($i++ < 5) { $i++; ?>
if
循环中的foreach
语句确保循环中最多只返回三个。
(我不知道为什么因为对我而言,如果值大于5)。
答案 1 :(得分:0)
在循环之前使用PHP的本机array_slice函数。以下将返回最多3个,您不会浪费时间循环不必要的元素。
array_slice($_images, 0, 3)