【问题标题】:Product URL Rewrite troubles in Magento 1.7Magento 1.7 中的产品 URL 重写问题
【发布时间】:2014-09-09 05:11:53
【问题描述】:

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

我的 Magento 设置如下图 ::

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

我的产品是 ::

  1. 位于 2 个类别级别深,表示 cat1/cat2/product
  2. 所有产品 URL 都采用这种格式 :: site_url/cat2/product_key
  3. 一个产品出现在多个类别下

我们强烈请求任何帮助。

【问题讨论】:

    标签: php magento


    【解决方案1】:

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

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

    中的文件

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

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

    我添加以下行 ::

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

    并使用 $_url 变量作为产品的 URL。这非常有效。

    【讨论】:

      【解决方案2】:

      最好在 $_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());
      }
      

      对于输出网址:

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

      否则,当文章没有类别时,system.log 会计算错误。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-04-15
        • 2016-01-19
        • 1970-01-01
        • 1970-01-01
        • 2014-09-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多