как получить название категории текущего продукта (на странице сведений о продукте) в magento

я использовал следующие коды, но не работал для этого случая:

$_category_detail=Mage::registry('current_category');
echo $_category_detail->getName();

получил фатальная ошибка: вызов функции-члена getName () для не-объекта в /app/design/frontend/base/default/template/catalog/product/view.phtml, который

мы делаем некоторые фильтры и используем ниже код упоминания в голове.phtml, который:

$is_product = Mage::registry('product');

if($is_product){ 

  if(is_object(Mage::registry('current_category'))){ 
    $category_name = Mage::registry('current_category')->getName(); 
  }
  else{ $category_name = ""; }

}

но это работает только в том случае, если вы переходите из категории в продукт. Если вы посетите страницу продукта непосредственно ничего не отображается

2 ответов


Это потому, что продукты могут быть прикреплены к нескольким категориям. В вашем случае при посещении страницы продукта, указанной на странице категории, сеанс содержит сведения о категории. Но если вы посещаете непосредственно страницу продукта, Magento не может знать, из какой категории вы пришли, поэтому он не может показать вам конкретную категорию, потому что ваш продукт может иметь несколько категорий.

но в вашей ситуации, если ваша продукция прикреплены только к одной категории, вы можете использовать этот код, он показывает первая категория название продукта;

        $categoryIds = $_product->getCategoryIds();

        if(count($categoryIds) ){
            $firstCategoryId = $categoryIds[0];
            $_category = Mage::getModel('catalog/category')->load($firstCategoryId);

            echo $_category->getName();
        }

  <?php 
    $_category_detail=Mage::registry('current_category');
    echo  $_category_detail->getName(); //gives current  category name
    echo $_category_detail->getId(); //gives current category id
?>