Magento显示特定当前父类PHP的子类别

时间:2012-11-05 16:21:55

标签: php magento categories

我正在尝试在我的商店展示品牌。我卖男女装,所以我有两个不同的品牌类别。

我的类别结构如下所示:

男性   品牌     X品牌 妇女   品牌     的y品牌

我想展示产品的品牌。

我找到了这段代码:

$children = Mage::getModel('catalog/category')->getCategories(10);
foreach ($children as $category) {
    echo $category->getName();
}

但是,它仅适用于一个类别,并显示父类别中的所有子类别,而不是产品所拥有的子类别。

如何修改此选项以显示当前品牌类别的子类别。

我希望这是有道理的,我感谢任何帮助!

2 个答案:

答案 0 :(得分:1)

显示给定类别的子类别列表

$_category = Mage::registry('current_category');

$subcategories = Mage::getModel('catalog/category')->getCategories($_category->getId());

foreach ($subcategories as $subcategory){
     print_r($subcategory->getData()
}

查看更多@ Magento: Display sub-category list

答案 1 :(得分:0)

旧问题已经过时了,但我觉得自己已经问过了,因为这个问题没有得到答复,其他人也觉得这个问题很有用..

所以,首先,这段代码依赖于产品列表循环,即:

$_productCollection=$this->getLoadedProductCollection();
foreach ($_productCollection as $_product) {
    *... your product list output here ...*
}

其次,此代码依赖于使用“BRANDS”作为Magento根类别的子类别(无论它恰好被称为)的设置,并且每个品牌名称都被设置为“品牌”的子类别子猫。您可能需要在下面的代码中扩充该cat名称或更改您的类别结构以匹配我的。

因此,在app / design / frontend / your-package / your-theme / template / catalog / product / list.phtml中设置的“ProductCollection”循环中,您可以将此代码段与品牌名称相呼应名。

$categories = $_product->getCategoryCollection()
                       ->addAttributeToSelect('name')
                       ->addAttributeToFilter('is_active', array('eq' => 1));

foreach($categories as $category) {
    $catID = $category->getId();
    $catParent = Mage::getModel('catalog/category')->load($catID)
                                                   ->getParentCategory();
    if ( $catParent->getName() == 'BRANDS' ) {
        echo '<a href="'.$category->getUrl().'">'.$category->getName().'</a>';
    }
}

奖金编辑: 添加了代码以在品牌类别页面的链接中包装品牌名称。