如何获取将“包含在导航菜单中”设置为否的所有子类别的列表


8

我试图获取所有未包含在导航菜单中但仍处于活动状态的子类别,这些类别位于列表页面中。

$children = Mage::getModel('catalog/category')->getCategories(10); //10 current category id

即使此类别集合也返回导航菜单中包含的子类别

如何获取导航菜单中未包含的类别?

Answers:


11

尝试这个:

$collection = Mage::getResourceModel('catalog/category_collection')
    ->addAttributeToSelect('*')
    ->addAttributeToFilter('is_active', 1) //only active categories
    ->addAttributeToFilter('include_in_menu', 0) //only categories not included in menu
    ->addAttributeToFilter('parent_id', 10)//get only subcategories of the category with id 10
    ->addAttributeToSort('position')//sort by position
;

foreach ($collection as $category) {
    //do something with $category
}

它还不会返回菜单@marius中未显示的类别
DRAJI 2014年

1
@DRAJI。嗯...应该。确保您的索引是最新的。
马里乌斯

很抱歉,这也是“$集合=法师:: getResourceModel(‘目录/ category_collection’)”不返回这些类别
DRAJI

@DRAJI。然后,您的类别树可能有问题。数据可能已损坏。path字段的某些值可能是错误的。否则父母ID可能是错误的。
马吕斯
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.