2

我在 magento 中使用过滤器导航,因此过滤页面的 url 显示如下:www.example.com/page#cat=16&gan_data=true

我想更改我的类别的 URL 键,使它们指向包括过滤器设置的顶级菜单(如上面的 url),而不是子级页面。

问题是,当我像这样保存 URL 键时,哈希标记从 # 变为 - ,所以新的 url 看起来像这样:www.example.com/page-cat-16-gan-data-true

有没有办法避免这种情况?

4

1 回答 1

2

格式化 URL 键的方法是 Mage_Catalog_Model_Category::formatUrlKey():

public function formatUrlKey($str)
{
    $str = Mage::helper('core')->removeAccents($str);
    $urlKey = preg_replace('#[^0-9a-z]+#i', '-', $str);
    $urlKey = strtolower($urlKey);
    $urlKey = trim($urlKey, '-');
    return $urlKey;
}

任何非字母数字字符都将替换为破折号。因此,如果没有工作,您将无能为力。

你有几个选择:

  • 覆盖类并更改方法。
  • 通过安装程序更改后端模型。

第二个选项与升级最兼容,但不幸的是,目录 URL 重写索引将通过相同的方法重新格式化 URL 密钥。因此,您必须重写 Category 类来更改 formatUrlKey() 方法。

于 2012-12-13T22:31:14.213 回答