Читая документацию для menu_tree_page_data () , мне кажется, что я должен иметь возможность извлечь все содержимое моего главного меню, вызвав функцию следующим образом: menu_tree_page_data('main-menu')
. Так как параметр 2, $max_depth
, по умолчанию равен NULL, это должно рекурсивно пройти все уровни. Поскольку параметр 3, $only_active_trail
, по умолчанию равен FALSE, он должен получить все ссылки, а не только те, которые находятся на активном трейле.
Однако при вызове этой функции я получаю данные дерева следующего типа.
Все ссылки на первом уровне глубины.
Все ссылки на втором уровне глубины.
Только активные ссылки на третьем уровне глубины.
Что здесь происходит? Я также попытался явно установить params как menu_tree_page_data('main-menu', 10, FALSE)
, чтобы убедиться, что я не неправильно интерпретировал поведение по умолчанию. Мне пришлось написать свою собственную функцию, чтобы дать мне все меню, но в нем нет данных активного следа. Теперь я нахожусь в ситуации, когда я смешиваю две функции для создания полного дерева меню с информацией активного следа, и это очень грязно. Было бы замечательно, если бы одно решение работало.
В качестве альтернативы, есть ли простой способ определения активного следа для данного пункта меню? Если это так, я просто добавлю это в свою уже работающую функцию поиска дерева и вызову ее через день.