Php 在magento的特价商品上显示销售图标。仅在主页上显示,而不是在所有页面上显示

Php 在magento的特价商品上显示销售图标。仅在主页上显示,而不是在所有页面上显示,php,magento,Php,Magento,在magento的特价商品上显示销售图标。仅在主页上显示,而不是在所有页面上显示 我在其中编辑的代码 app/design/frontend/default/template/catalog/product/list.html 从行号:95 <a href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $this->stripTags($this->getImageLabel($

在magento的特价商品上显示销售图标。仅在主页上显示,而不是在所有页面上显示

我在其中编辑的代码 app/design/frontend/default/template/catalog/product/list.html
从行号:95

<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(135); ?>" width="135" height="135" alt="<?php echo $this->stripTags($this->getImageLabel($_product, 'small_image'), null, true) ?>" />


<?php 
    // Get the Special Price
    $specialprice = Mage::getModel('catalog/product')->load($_product->getId())->getSpecialPrice(); 
    // Get the Special Price FROM date
    $specialPriceFromDate = Mage::getModel('catalog/product')->load($_product->getId())->getSpecialFromDate();
    // Get the Special Price TO date
    $specialPriceToDate = Mage::getModel('catalog/product')->load($_product->getId())->getSpecialToDate();
    // Get Current date
    $today =  time();

    if ($specialprice):
        if($today >= strtotime( $specialPriceFromDate) && $today <= strtotime($specialPriceToDate) || $today >= strtotime( $specialPriceFromDate) && is_null($specialPriceToDate)):
?>
        <img src="../images/sale-icon.png" width="101" height="58" class="onsaleicon" />
<?php  
        endif;
    endif;
?>

</a>

此图标仅显示在主页中,而不是所有产品列表页面中。如何在所有页面中显示


请帮我解决这个问题

这是因为您插入了如下图像:

<img src="../images/sale-icon.png" width="101" height="58" class="onsaleicon" />
[编辑]
有点离题了,但最好知道:不要为您需要的每个产品属性使用
Mage::getModel('catalog/product')->load($\u product->getId())
。它比你想象的要慢得多。只需在后端编辑您需要的属性(特价、特价从和特价到),将产品列表中使用的字段
设置为
,重新索引所有内容,您应该能够直接使用:

$specialprice = $_product->getSpecialPrice();
$specialPriceFromDate = $_product->getSpecialFromDate();
$specialPriceToDate = $_product->getSpecialToDate();

好的,我已经按照你说的放好了。但这只是显示在主页上的产品而已。。不在像类别页面这样的内部页面中。首先检查此URL,确保您在主页上使用的产品模板与类别中的模板相同。如果你这样做,那么很可能你的一个If语句返回false。我没有其他想法。就像我之前说过的,也许你的一个if语句返回false。检查哪一个。那将是一个很好的开始。小心比较像这样的日期!这种假设永远不会发生:
$today
$specialprice = $_product->getSpecialPrice();
$specialPriceFromDate = $_product->getSpecialFromDate();
$specialPriceToDate = $_product->getSpecialToDate();