Magento:显示产品属于产品页面的类别,但过滤掉一个特定类别

时间:2012-03-15 09:47:11

标签: php magento

我已阅读之前提出并回答的帖子:Magento display all categories on product view page with parent categories

代码:

$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();
}

代码确实将类别链接添加到我的产品页面,这就是我想要的。

但我有一个名为“默认类别”的特定类别,所有其他类别都在其下。无论如何我可以过滤“默认类别”并将其隐藏在产品页面中吗?

我对PHP很糟糕所以请帮助我。

非常感谢

马库斯

2 个答案:

答案 0 :(得分:0)

尝试添加类别级别过滤器。 默认类别为level = 1,children为+1

$categoryCollection = Mage::getResourceModel('catalog/category_collection')
                 ->addAttributeToSelect('name')
                 ->addAttributeToSelect('url')
                 ->addFieldToFilter('level', array('gteq' => 1));
                 ->addAttributeToFilter('entity_id', $currentCatIds)
                 ->addIsActiveFilter();

答案 1 :(得分:0)

如果您需要在产品视图页面中列出与所选产品相关的所有类别,您只需将以下代码放在app / design / frontend /// template / catalog / product / view.phtml中< / p>

<?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; ?>