7

I am displaying related products in content block of layout in product view page. My code in catalog.xml is:

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

Now, all the related products are displayed in my product view page, but I want to display only 3 products, What should I do? Please, anybody can help ??

4

3 回答 3

10

您需要编辑模板文件catalog/product/list/related.phtml并将循环限制为仅迭代 3 个产品。

例如:

    ...
    <?php $i = 0; ?>
    <?php foreach($this->getItems() as $_item): ?>
        <?php if($i++ == 3) break; ?>
        ...
于 2013-05-10T13:04:21.747 回答
5

这对我有用。您必须限制查询,并且可能在加载集合之前对其进行洗牌。打开文件 \app\code\core\Mage\Catalog\Block\Product\List\Related.php 并查找方法:

Mage_Catalog_Block_Product_List_Related->_prepareData()

在 load() 调用之前添加这一行。

$this->_itemCollection->getSelect()->limit(3)->order(new Zend_Db_Expr('RAND()'));

还是不好看,!!不要写在核心代码里!!,但这是一个好的开始。

于 2014-11-17T23:14:54.930 回答
1

你有一个准备好的产品集合,Mage_Catalog_Block_Product_List_Related它在模板文件中被迭代catalog/product/list/related.phtml。如果您有任何应该添加以限制您的集合的规则,您可以覆盖 _prepareData() 方法并修改集合。如果没有,最简单的解决方案是在 3 次迭代后退出 phtml 中的循环。

于 2013-05-10T13:05:54.967 回答