1

我正在尝试在我的商店中展示品牌。我同时销售男装和女装,所以我有两个独立的品牌类别。

我的类别结构如下所示:

男士品牌 x 品牌 女士品牌 y 品牌

我想展示产品的品牌。

我找到了这段代码:

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

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

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

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

4

2 回答 2

1

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

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

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

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

查看更多@Magento:显示子类别列表

于 2012-11-05T19:22:26.873 回答
0

老问题很老了,但我想我会插话,因为这个问题没有得到回答,其他人可能会觉得这很有用..

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

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

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

因此,在 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>';
    }
}

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

于 2014-08-21T21:28:42.217 回答