我正在尝试在我的商店展示品牌。我卖男女装,所以我有两个不同的品牌类别。
我的类别结构如下所示:
男性 品牌 X品牌 妇女 品牌 的y品牌
我想展示产品的品牌。
我找到了这段代码:
$children = Mage::getModel('catalog/category')->getCategories(10);
foreach ($children as $category) {
echo $category->getName();
}
但是,它仅适用于一个类别,并显示父类别中的所有子类别,而不是产品所拥有的子类别。
如何修改此选项以显示当前品牌类别的子类别。
我希望这是有道理的,我感谢任何帮助!
答案 0 :(得分:1)
显示给定类别的子类别列表
$_category = Mage::registry('current_category');
$subcategories = Mage::getModel('catalog/category')->getCategories($_category->getId());
foreach ($subcategories as $subcategory){
print_r($subcategory->getData()
}
答案 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>';
}
}
奖金编辑: 添加了代码以在品牌类别页面的链接中包装品牌名称。