如何在产品视图页面上仅显示3个相关产品,Magento?

时间:2013-05-10 12:40:44

标签: magento magento-1.7 magento-1.4

我在产品视图页面的内容布局块中显示相关产品。我在 catalog.xml 中的代码是:

<reference name="content">
     <block type="catalog/product_list_related" name="catalog.product.related" after="-" template="catalog/product/list/related.phtml"/>
</reference>

现在,所有相关产品都显示在我的产品视图页面中,但我只想显示3个产品,我该怎么办?拜托,任何人都可以帮忙吗?

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中的循环。