Magento getUrl显示缓存的url

时间:2015-08-21 15:10:02

标签: php magento url caching categories

我添加了一个自定义块,显示父类别的子类别。如下。

<?php
$_helper    = $this->helper('catalog/output');
$_category  = $this->getCurrentCategory();

echo $_helper->categoryAttribute($_category, $_category->getName(), 'name');
$categoriess = $_category->getCollection()
    ->addAttributeToSelect(array('name', 'thumbnail'))
    ->addAttributeToFilter('is_active', 1)
    ->addIdFilter($_category->getChildren())
?>
<ul class="subcategories">
<?php foreach ($categoriess as $categoryy): ?>
    <li>
        <a href="<?php echo $categoryy->getUrl() ?>"><img src="<?php echo Mage::getBaseUrl('media') . 'catalog' . DS . 'category' . DS . $categoryy->getThumbnail() ?>" alt="<?php echo $this->htmlEscape($categoryy->getName()) ?>"   />
            <span><?php echo $categoryy->getName() ?></span></a>
    </li>
<?php endforeach; ?>
</ul>

此代码正确显示父类别中的子类别列表。然而,当我导航到其中一个子类别时,会发生一些奇怪的事情。

问题

父类别= CAR MAKES 子类别=奥迪,福特,沃克斯霍尔

使用上面的代码我正确地收到了上面的子类别列表。刷新缓存后,如果我要导航到AUDI,则URL将正确生成,例如:

 mysite.com/CAR MAKES/Audi.html

这很好,但是如果我然后返回导航到FORD页面顶部的网址显示为

 mysite.com/CAR MAKES/Ford.html

BUT

如果我使用以下代码回显生成页面上的网址:

<?php $currentUrl = Mage::helper('core/url')->getCurrentUrl(); echo $currentUrl; ?>

它将始终显示

mysite.com/CAR MAKES/Audi.html

即使我导航到FORD,或者VAUXHALL,回显的网址是/Audi.html,尽管页面顶部的网址显示正确。

我完全不知道为什么会这样。我正在尝试为每个汽车品牌和型号生成产品列表,但是一旦您导航到一个品牌和型号,它将始终在导航到另一个品牌和型号时显示这些结果。除非我刷新缓存,在这种情况下,我第一次导航到它正确显示的品牌和型号,然后错误重复。

1 个答案:

答案 0 :(得分:0)

在布局更新中添加此代码。

<block type="core/template" template="your-template-path.phtml" name="template-name" ><action method="setCacheLifetime"><s>null</s></action></block>