我在洋红色中有一个phtml文件。我正在使用此代码。但它加载所有子类别。有没有办法排除某些子类别
$layer = Mage::getSingleton('catalog/layer');
$category = $layer->getCurrentCategory();
/* @var $category Mage_Catalog_Model_Category */
$collection = Mage::getModel('catalog/category')->getCollection();
/* @var $collection Mage_Catalog_Model_Resource_Eav_Mysql4_Category_Collection */
$collection->addAttributeToSelect('url_key')
->addAttributeToSelect('name')
->addAttributeToSelect('is_anchor')
->addAttributeToSelect('image')
->addAttributeToFilter('is_active', 1)
->addIdFilter($category->getChildren())
->setOrder('position', 'ASC')
->joinUrlRewrite()
->load();
$_categories=$collection;
$_subcategories = $_category->getChildrenCategories()
foreach ($_subcategories as $_subcategory)
{
//need to exclude some subcategory based on its id.
}
您可以按以下方式过滤类别:
- 他们的等级:
addAttributeToFilter('level','1')
- 这将只获得一级类别; - 无论它们是否包含在菜单中:
addAttributeToFilter('include_in_menu','1')
;
您还可以通过检查其产品来进一步筛选类别,以查看它们是否具有有效(状态为 1(以及单独可见(可见性 4(产品:
Mage::getModel('catalog/category')->load($categoryId)
->getProductCollection()
->addAttributeToFilter('status', 1)
->addAttributeToFilter('visibility', 4);
PS:您可能希望在模型类内或至少在块/帮助程序类中移动此业务逻辑,以尊重Magento 1平台的MVC(模型-视图-控制器(设计模式。