我的商店中有一个包含单个子类别的根类别。它被设置为锚点,以便在左侧列中启用动态属性过滤器以进行导航。
虽然过滤器渲染得很好,并且可以从主页完美地工作,但当我导航到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”是类别网址(我只有一个类别,这个工作正常!)
答案 0 :(得分:-1)
你应该对这两个替换使用斜杠:
<?php
echo str_replace(array('?','/?'),
array('/tapes.html?','/tapes.html?'),
$_filter->getHtml())
?>