Формировать пункты меню по разделам инфоблока

Пункты меню прописаны в файле .type.menu.php.

Если надо делать динамические пункты меню, например, формировать по разделам инфоблока, то такое меню создаётся в файле .type.menu_ext.php.

Разделы для пунктов меню формируются через компонент «bitrix:menu.sections» (пункты меню генерируются только по разделам, не по элементам).

// .type.menu_ext.php

// подключение модуля «iblock» для работы с инфоблоками
\Bitrix\Main\Loader::includeModule('iblock');

global $APPLICATION;
$aMenuLinksExt = $APPLICATION->IncludeComponent("bitrix:menu.sections", "", array(
    "IBLOCK_TYPE" => "catalog", // тип меню
    "IBLOCK_ID" => "2", // ИД меню
    "DEPTH_LEVEL" => "3", // Уровень вложенности
));

// объединение изначальных пунктов меню с новыми пунктами меню, созданных выше
$aMenuLinks = array_merge($aMenuLinks, $aMenuLinksExt);

Пункты меню, подключённые через компонент «bitrix:menu.sections», по умолчанию кешируются, что снижает нагрузку на сервер.