我正在处理我正在处理的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; ?>
答案 0 :(得分: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
文件的本地副本,并根据我的需要对其进行了修改。
现在工作正常。
答案 1 :(得分:0)
查看您的代码
{{block type="catalog/product_list" category_id="4" template="catalog/product/custom_list.phtml"}}
您似乎正在使用非库存模板文件来呈现块。 (catalog/product/custom_list.phtml
)。如果我自己调试这个问题,我首先要查看该模板中的逻辑,并弄清楚它为什么没有在产品页面上显示集合。