Как получить список всех подкатегорий, для которых установлено «Включить в меню навигации» как нет

8

Я попытался получить все подкатегории, которые не включены в меню навигации, но они активны, текущей категории на странице списка.

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

Даже эта коллекция категорий также возвращает только те подкатегории, которые включены в меню навигации .

Как получить категорию, которая не входит в меню навигации?

DRAJI
источник

Ответы:

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
1
@DRAJI. хммм ... так и должно быть. Убедитесь, что ваши индексы обновлены.
Мариус
Извините, но "$ collection = Mage :: getResourceModel ('catalog / category_collection')" не возвращает эти категории
DRAJI
@DRAJI. Тогда это может быть что-то не так с вашим деревом категорий. Возможно, повреждены данные. Некоторые значения для pathполя могут быть неправильными. Или родительские идентификаторы могут быть неправильными.
Мариус