我在产品视图页面的内容布局块中显示相关产品。我在 catalog.xml 中的代码是:
<reference name="content">
<block type="catalog/product_list_related" name="catalog.product.related" after="-" template="catalog/product/list/related.phtml"/>
</reference>
现在,所有相关产品都显示在我的产品视图页面中,但我只想显示3个产品,我该怎么办?拜托,任何人都可以帮忙吗?
答案 0 :(得分:10)
您需要编辑模板文件catalog/product/list/related.phtml
并将循环限制为仅迭代3个产品。
例如:
...
<?php $i = 0; ?>
<?php foreach($this->getItems() as $_item): ?>
<?php if($i++ == 3) break; ?>
...
答案 1 :(得分:5)
这对我有用。 您必须限制查询,并可能在加载集合之前将其洗牌。打开文件\ app \ code \ core \ Mage \ Catalog \ Block \ Product \ List \ Related.php并查找方法:
Mage_Catalog_Block_Product_List_Related-&GT; _prepareData()
在load()调用之前添加此行。
$this->_itemCollection->getSelect()->limit(3)->order(new Zend_Db_Expr('RAND()'));
它仍然不漂亮, !!你不应该写核心代码!! ,但这是一个好的开始。
答案 2 :(得分:1)
您在Mage_Catalog_Block_Product_List_Related
中准备了一系列产品,并在模板文件catalog/product/list/related.phtml
中进行了迭代。
如果您有任何应该添加的规则来限制集合,则可以覆盖_prepareData()方法并修改集合。
如果没有,最简单的解决方案是在三次迭代后退出phtml中的循环。