2013-08-05 13 views
5

kullandığım kodları aşağıdaki ancak bu durum için işe yaramadı: Üye işleve Çağrı:nasıl magento (ürün detay sayfasında) geçerli ürünün kategorisini adını almak için

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

Önemli hata var /app/design/frontend/base/default/template/catalog/product/view.phtml olmayan bir nesne üzerinde getName()

bazı filtreler yapmak ve head.phtml içinde söz kodunun altında kullanın:

$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 = ""; } 

} 

Ancak bu, yalnızca bir kategoriden bir ürüne geçerseniz çalışır. Ürün sayfasını doğrudan ziyaret ederseniz, hiçbir şey gösterilmiyor

cevap

19

Çünkü ürünler birden fazla kategoriye eklenebilir. Durumunuzda, bir kategori sayfasından atıfta bulunulan bir ürün sayfasını ziyaret ettiğinizde, oturumunuz kategori bilgisine sahiptir. Ancak, doğrudan ürün sayfasını ziyaret ederseniz, Magento hangi kategoriden geldiğinizi bilmez. Bu nedenle, ürününüzün birden fazla kategoriye sahip olabileceği için size belirli bir kategori gösteremez.

Fakat sizin durumunuzda, ürünleriniz yalnızca bir kategoriye eklenmişse, bu kodu kullanabilirsiniz, ürünün ilk kategori adını gösterir; Bu soruya cevap mümkün olmakla birlikte

 $categoryIds = $_product->getCategoryIds(); 

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

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

, nasıl bu kod yardımı ile ilgili bazı açıklamalar sağlamak için daha iyidir. – vard

+2

Mangy olmak istemiyorum ama bu soru aslında cevap değil. Kullanıcı, yukarıdaki kodun kendi durumu için çalışmadığından bahsetmiştir. @vard ile aynı fikirdeyim, daha önce pastayı SO'dan kopyalardık, fakat soruyu okumadan SO'ya yapıştırarak yeni bir soru sordum. – muhammedv

İlgili konular