Magento - 边栏类别过滤器,URL不是从root开始的

时间:2012-10-29 16:01:54

标签: php magento magento-1.7

我的商店中有一个包含单个子类别的根类别。它被设置为锚点,以便在左侧列中启用动态属性过滤器以进行导航。

虽然过滤器渲染得很好,并且可以从主页完美地工作,但当我导航到CMS页面(或任何页面,然后是主页)时,URL是不正确的,例如。

来自主页:

http://www.domain.com/category_name.html?price=10-20

来自“联系我们”页面:

http://www.domain.com/contacts/category_name.html?price=10-20

如您所见,它使用CMS页面网址作为基本路径。

过滤网址没有设置。

我使用以下代码显示过滤器侧边栏导航:

<?php if($this->canShowBlock()): ?>
<div class="product-range">
    <h2><?php echo $this->__('Browse Products') ?></h2>
    <?php echo $this->getStateHtml() ?>
    <?php if($this->canShowOptions()): ?>
            <?php $_filters = $this->getFilters() ?>
            <?php foreach ($_filters as $_filter): ?>
                <?php if($_filter->getItemsCount()): ?>
            <nav>
                <dl>
                    <dt><?php echo $this->__('Browse by '.$_filter->getName()); ?></dt>
                    <dd>
                        <?php echo str_replace(array('?','/?'), array('tapes.html?','/tapes.html?'), $_filter->getHtml()) ?>
                    </dd>
                </dl>
            </nav>
                <?php endif; ?>
            <?php endforeach; ?>
    <?php endif; ?>
</div>
<?php endif; ?>

“tapes.html”是类别网址(我只有一个类别,这个工作正常!)

1 个答案:

答案 0 :(得分:-1)

你应该对这两个替换使用斜杠:

<?php 

echo str_replace(array('?','/?'), 
                 array('/tapes.html?','/tapes.html?'), 
                 $_filter->getHtml()) 

?>