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


8

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

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

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

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

Ответы:


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поля могут быть неправильными. Или родительские идентификаторы могут быть неправильными.
Мариус
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.