0

我正在处理的 Magento 网站上的产品页面有问题。

我在静态块中使用以下代码在标题部分显示产品:

{{block type="catalog/product_list" category_id="4" template="catalog/product/custom_list.phtml"}}  

问题是,除了“产品”页面之外,该块在所有页面上都显示良好。我在这里错过了什么吗?

希望你们能帮助我。

custom_list.phtml

<?php
    $_productCollection = $this->getLoadedProductCollection();
    $_helper = $this->helper('catalog/output');
?>
<?php if(!$_productCollection->count()): ?>
    <p class="note-msg"><?php echo $this->__('There are no products matching the selection.') ?></p>
<?php else: ?>
    <div class="cat-product-list">
        <ul class="products-grid">
            <?php foreach ($_productCollection as $_product): ?>
                <li class="item">
                    <a href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $this->stripTags($this->getImageLabel($_product, 'small_image'), null, true) ?>" class="product-image"><img src="<?php echo $this->helper('catalog/image')->init($_product, 'small_image')->resize(90,60)->constrainOnly(TRUE)->keepAspectRatio(TRUE)->keepFrame(TRUE); ?>" width="90" height="60" alt="<?php echo $this->stripTags($this->getImageLabel($_product, 'small_image'), null, true) ?>" /></a>
                </li>
            <?php endforeach ?>
        </ul>
    </div>
<?php endif; ?>
4

2 回答 2

1

category_id="4"事实证明,除非类别 ( ) 与您正在查看的产品类别相同,否则产品不会显示在产品页面上。在List.php.

if (Mage::registry('product')) {
                $categories = Mage::registry('product')->getCategoryCollection()
                    ->setPage(1, 1)
                    ->load();
                if ($categories->count()) {
                    $this->setCategoryId(current($categories->getIterator()));
                }
            }

我添加了该List.php文件的本地副本并根据我的需要对其进行了修改。现在工作正常。

于 2014-02-03T23:38:48.860 回答
0

查看您的代码

{{block type="catalog/product_list" category_id="4" template="catalog/product/custom_list.phtml"}}  

您似乎正在使用非库存模板文件来渲染块。( catalog/product/custom_list.phtml)。如果我自己调试这个问题,我会首先查看该模板中的逻辑并找出它为什么没有在产品页面上显示集合。

于 2014-02-03T20:26:39.893 回答