Php Magento 1.7中的产品URL重写问题

Php Magento 1.7中的产品URL重写问题,php,magento,Php,Magento,我的Magento 1.7安装有一个奇怪的问题,所有的产品URL中都有类别键,但是Up-Sell产品(在产品的详细信息页面上)显示的URL中缺少类别键。相关产品的URL是可以的 我的Magento设置如下所示: “为产品URL使用类别路径”=>是 “如果URL键更改,则为URL创建永久重定向”=>否 “为类别URL使用父类别路径”=>否 我的产品是: 位于2类深度,表示cat1/cat2/产品 所有产品url均采用以下格式::site\u url/cat2/product\u key 一种产

我的Magento 1.7安装有一个奇怪的问题,所有的产品URL中都有类别键,但是Up-Sell产品(在产品的详细信息页面上)显示的URL中缺少类别键。相关产品的URL是可以的

我的Magento设置如下所示:

  • “为产品URL使用类别路径”=>是
  • “如果URL键更改,则为URL创建永久重定向”=>否
  • “为类别URL使用父类别路径”=>否
我的产品是:

  • 位于2类深度,表示cat1/cat2/产品
  • 所有产品url均采用以下格式::site\u url/cat2/product\u key
  • 一种产品出现在多个类别下

  • 非常希望得到任何帮助。

    我找到了一个解决方案,可以在追加销售产品的URL中包含类别名称

    我不得不在my_theme/template/catalog/product/list/upsell.phtml修改文件

    在第51行附近,就在第51行之后:

    <?php if($_link=$this->getIterableItem()):
    

    并使用$\uURL变量作为产品的url。这非常有效。

    最好在$\u categories是if函数的地方使用这段代码

    $d = $_link->getData();
    $id = $d['entity_id'];
    $_product = Mage::getModel('catalog/product')->load($id);
    $_categories = $_product->getCategoryIds();
    if($_categories) {
        $_category = Mage::getModel('catalog/category')->load($_categories[0]);
        $cat_url = str_replace(".html","",$_category->getUrlPath());
        $_url = Mage::getUrl($cat_url).basename($_link->getProductUrl());
    }
    
    对于输出URL:

    <?php if ($_categories) { echo $_url; }; ?>
    
    
    
    否则,当项目没有类别时,system.log会统计错误

    <?php if ($_categories) { echo $_url; }; ?>