1

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

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

从主页:

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

从联系我们页面:

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

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

过滤器 URL 没有设置。

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

<?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”是类别 URL(我只有一个类别,这很好用!)

4

1 回答 1

-1

您可能应该对两个替换都使用斜杠,如下所示:

<?php 

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

?>
于 2012-10-29T21:23:38.480 回答