我正在爲頁腳構建「本月產品」塊。它應該加載一個類別的產品並顯示第一個。Magento:在頁腳中顯示特定類別的產品
這是我的模板文件custom/featured-product.phtml
:
<?php $_productCollection = $this->getLoadedProductCollection() ?>
<div class="featured-product">
<h2><?php echo $this->__('Product of the Month') ?></h2>
<?php foreach ($_productCollection as $_product): ?>
<div class="item">
<a class="product-image" href="<?php echo $_product->getProductUrl() ?>">
<img src="<?php echo $this->helper('catalog/image')->init($_product, 'small_image')->resize(200); ?>" alt="<?php echo $this->htmlEscape($this->getImageLabel($_product, 'small_image')) ?>" />
</a>
<a class="product-name" href="<?php echo $_product->getProductUrl() ?>"><?php echo $this->htmlEscape($_product->getName()) ?></a>
<?php echo $this->getPriceHtml($_product, true) ?>
</div>
<?php
// Note: Exit after first product.
break;
?>
<?php endforeach ?>
</div>
這只是Magento的產品列表模板的一個簡化版本:catalog/product/list.phtml
WORKING
當一個CMS頁面嵌入塊,它工作正常。例如:
{{block type="catalog/product_list" category_id="13" template="custom/featured-product.phtml" }}
NOT WORKING
當經由local.xml
嵌入塊,它失敗。正確的標記被返回,但指定的類別未被加載。而是一個隨機(我不知道他們是如何選擇的)一套產品被加載。
我在local.xml
代碼:
<default>
<reference name="footer">
<block type="catalog/product_list" name="custom.featuredProduct" as="product_of_the_month" category_id="13" template="custom/featured-product.phtml" />
</reference>
</default>
爲了完整起見,我明確地渲染塊page/html/footer.phtml
像這樣:
<?php echo $this->getChildHtml('product_of_the_month') ?>
任何想法?
我最好的猜測是我的local.xml
是不正確的。是否有我需要加載的父塊?
[更新]
我原來的代碼崩潰的產品頁面。解決方法是而不是基於Magento核心文件上的代碼太重了:catalog/product/list.phtml
。特別是避免這一行:
<?php $_productCollection = $this->getLoadedProductCollection() ?>
[解決方法]
在CMS頁和LayoutXML使用實例的工作版本,這裏包括: https://stackoverflow.com/a/12288000/1497746
'local.xml' - 這哪裏是文件在什麼位置? (完整路徑) – FlorinelChis
@FlorinelChis - 這不是主題備用層次結構的問題。這是一個自定義包的正常位置:/app/design/frontend/custom/custom/layout/local.xml –