在Magento中显示产品所属的所有类别

时间:2010-11-23 03:39:39

标签: php collections magento categories

我正在构思一个新的Magento网站,该网站将包含多个类别的产品。我想知道的是,我是否可以在产品详细信息页面上显示产品所在的所有类别。我知道可以获取 类别,但是是否可以显示产品所属的所有类别列表?

例如,衬衫可能包含在 Shirts 类别中,以及 Designers Summer 中。理想情况下,我希望能够显示以下内容:

  

更多来自:

     

男士>衬衫

     

男士>设计师> BarnabéHardy

     

男士>夏季

3 个答案:

答案 0 :(得分:8)

这将为您提供所需的数据,例如类别名称,URL等:

$currentCatIds = $_product->getCategoryIds();
$categoryCollection = Mage::getResourceModel('catalog/category_collection')
                     ->addAttributeToSelect('name')
                     ->addAttributeToSelect('url')
                     ->addAttributeToFilter('entity_id', $currentCatIds)
                     ->addIsActiveFilter();

然后只是迭代集合,例如

foreach($categoryCollection as $cat){
  echo $cat->getName().' '.$cat->getUrl();
}

答案 1 :(得分:1)

简单。

$_categories = $_product->getCategoryCollection()
foreach ($_categories as $_category)
    //do something with $_category

答案 2 :(得分:1)

您可以使用以下代码在产品详细信息页面中显示与所选产品相关的所有类别。

<?php $categories = $_product->getCategoryIds(); ?>
           <?php foreach($categories as $k => $_category_id): ?>
           <?php $_category = Mage::getModel('catalog/category')->load($_category_id) ?> 
< <a href="<?php echo $_category->getUrl() ?>"><?php echo $_category->getName() ?></a>
           <?php endforeach; ?>