次のコードを使用しましたが、この場合は機能しませんでした。
$_category_detail=Mage::registry('current_category');
echo $_category_detail->getName();
got 致命的なエラー: /app/design/frontend/base/default/template/catalog/product/view.phtmlの非オブジェクトでメンバー関数getName()を呼び出す
いくつかのフィルターを作成し、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 = ""; }
}
ただし、これは、カテゴリから製品に移動する場合にのみ機能します。製品ページに直接アクセスした場合、何も表示されていません
これは、商品を複数のカテゴリに関連付けることができるためです。あなたの状況では、カテゴリページから参照される製品ページにアクセスすると、セッションにカテゴリ情報が含まれます。ただし、製品ページに直接アクセスすると、Magentoはどのカテゴリから来たのかわからないため、製品に複数のカテゴリが含まれる可能性があるため、特定のカテゴリを表示できません。
ただし、状況によっては、商品が1つのカテゴリのみに関連付けられている場合、このコードを使用できます。このコードには、商品の最初のカテゴリ名が表示されます。
$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
?>