php 如何在magento中获取当前产品的类别名称(在产品详细信息页面上)

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/18053742/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-25 16:54:11  来源:igfitidea点击:

how to get category name of current product (on product detail page) in magento

phpmagentomagento-1.5

提问by user2652255

I used following codes but didn't work for this case:

我使用了以下代码,但不适用于这种情况:

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

got Fatal error:Call to a member function getName() on a non-object in /app/design/frontend/base/default/template/catalog/product/view.phtml

出现致命错误:在 /app/design/frontend/base/default/template/catalog/product/view.phtml 中的非对象上调用成员函数 getName()

we make some filters and use below mention code in head.phtml:

我们制作了一些过滤器并在 head.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 = ""; }

}

But this only works if you go from a category to a product. If you visit the product page directly nothing is being displayed

但这仅在您从类别转到产品时才有效。如果您直接访问产品页面,则不会显示任何内容

回答by muhammedv

It's because products can be attached to multiple categories. In your situation, when you visit a product page referred from a category page, your session has category information. But if you visit directly product page, Magento can not know which category you came from, so it can not show you a specific category, because your product can have multiple categories.

这是因为产品可以附加到多个类别。在您的情况下,当您访问从类别页面引用的产品页面时,您的会话具有类别信息。但是如果您直接访问产品页面,Magento 无法知道您来自哪个类别,因此它无法显示特定类别,因为您的产品可以有多个类别。

But in your situation, if your products are attached only one category, you can use this code, it shows first category name of product;

但是在您的情况下,如果您的产品只附加一个类别,则可以使用此代码,它显示产品的第一个类别名称;

        $categoryIds = $_product->getCategoryIds();

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

            echo $_category->getName();
        }

回答by Amit Naraniwal

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