Меню и навигация в Drupal: короткое руководство
Показываем, как в Drupal 10 и 11 создать пункт меню, собрать многоуровневую навигацию, вывести её в нужном регионе темы и проверить результат без правки шаблонов.

В Drupal меню можно собрать через административный интерфейс за 15–30 минут: создать ссылку, задать ей родительский пункт, вывести блок навигации в шапке и проверить отображение на сайте. Ниже — короткий сценарий для Drupal 10 и Drupal 11 без модулей и правки Twig-шаблонов.
Что нужно подготовить
Перед началом войдите под учётной записью с правами администратора или с разрешениями на управление меню и блоками. Названия разделов в Drupal 10.x и 11.x почти одинаковы, но внешний вид административной темы может отличаться.
- Рабочий сайт на Drupal 10.x или 11.x.
- Доступ к панели управления.
- URL страницы, которую нужно добавить, или понимание, что пункт будет вести на внешний адрес.
- Название пункта меню и его предполагаемое положение: например, «Каталог» в главном меню или «Контакты» в подменю.
Если меню уже создано, не создавайте второе только ради новой ссылки. Сначала проверьте список в разделе Структура → Меню.
В Drupal меню — это не просто список ссылок. Сначала вы создаёте пункт в структуре сайта, а затем размещаете блок этого меню в конкретном регионе темы.
Как создать пункт меню
- Откройте список меню. В административной панели перейдите в Структура → Меню. Найдите меню Main navigation, если пункт должен появиться в основной навигации, и нажмите Редактировать меню или аналогичную кнопку управления. Проверка: на экране появился список существующих ссылок и кнопка добавления пункта.
- Добавьте ссылку. Нажмите Добавить ссылку. В поле Название меню впишите короткий текст, который увидит посетитель: например, «О компании». В поле Ссылка укажите внутренний путь вроде
/aboutили начните вводить название опубликованной страницы и выберите найденный вариант. Для внешнего сайта используйте полный адрес, напримерhttps://example.com. Проверка: Drupal принимает название и адрес без сообщения о неправильном пути. - Выберите родительский пункт. Если ссылка должна быть самостоятельной, оставьте в поле Родительская ссылка значение верхнего уровня. Для вложенного пункта выберите существующую ссылку, например «Каталог». В Drupal уровень вложенности определяет не только отступ в административном списке, но и структуру, которую получит блок меню. Проверка: выбранный родитель отображается в форме, а пункт не назначен дочерним самому себе.
- Настройте публикацию. Убедитесь, что включён флажок Включено. Если пункт пока не готов, его можно сохранить отключённым и включить позже. Параметр Открывать ссылку в новом окне используйте только там, где это действительно нужно: для обычных внутренних страниц новая вкладка ухудшает навигацию. Проверка: после сохранения новый пункт виден в списке меню и помечен как включённый.
- Сохраните меню. Нажмите Сохранить. Drupal вернёт вас к списку ссылок или покажет сообщение об успешном сохранении. Если пункт оказался не на том уровне, откройте его настройки и измените родительскую ссылку. Проверка: пункт занимает ожидаемое место относительно соседних ссылок.
Как сделать выпадающее подменю
Подменю в Drupal строится из обычных пунктов меню. Отдельный модуль для базового уровня вложенности не нужен: достаточно назначить родительскую ссылку.
- Создайте верхний пункт, например «Услуги», и сохраните его.
- Добавьте «Разработка сайтов», «Поддержка» и другие ссылки.
- Для каждой дочерней ссылки в поле Родительская ссылка выберите «Услуги».
- Перейдите к списку меню и при необходимости перетащите ссылки в нужный порядок.
- Сохраните изменения после сортировки.
Проверка: на странице сайта при наведении или нажатии на «Услуги» появляется список дочерних ссылок. Способ открытия зависит от темы и её JavaScript: одна тема использует наведение, другая — клик.
Что делать с пунктом без собственной страницы
Иногда «Услуги» нужен только как заголовок для подменю. В этом случае не стоит указывать случайный адрес вроде #, если тема обрабатывает его непредсказуемо. Надёжнее создать страницу-обзор, например /services, или использовать корректную ссылку, которую посетитель может открыть.
Пункт с адресом <nolink> встречается в старых инструкциях и решениях для Drupal, но рассчитывать на него без проверки конкретной версии и установленных расширений не стоит. Для Drupal 10 и 11 сначала используйте обычную страницу-родитель.
Как вывести меню на странице
Созданное меню не появится на сайте автоматически, если его блок не размещён в регионе активной темы. Это частая причина ситуации, когда в административной панели ссылка есть, а посетитель её не видит.
- Откройте раскладку блоков. Перейдите в Структура → Раскладка блоков. В верхней части страницы выберите тему, которая используется на сайте, если Drupal показывает несколько вариантов.
- Найдите нужный регион. Выберите регион вроде Header, Primary menu или Главное меню. Название зависит от темы. Нажмите Разместить блок в этом регионе.
- Выберите блок меню. В списке найдите блок, связанный с Main navigation или вашим пользовательским меню. Не путайте его с блоком навигации по разделам: он может показывать структуру текущей страницы, а не ваши ссылки.
- Настройте условия показа. Если меню должно быть на всех страницах, оставьте ограничения пустыми. Если оно нужно только в разделе, используйте настройки видимости по пути или по другому доступному условию. Слишком узкое условие может скрыть меню для анонимных посетителей.
- Сохраните раскладку. Нажмите Сохранить блоки или кнопку с таким смыслом. Проверка: откройте сайт в режиме инкогнито и убедитесь, что меню видно без административной панели.
Если меню не появилось
- Блок размещён не в той теме. Вы могли изменить раскладку административной темы, а не темы сайта. Вернитесь в «Раскладку блоков» и выберите активную тему.
- Пункт отключён. В списке меню проверьте флажок Включено. Отключённая ссылка сохраняется, но посетителю не показывается.
- Не совпадает меню и его блок. На странице может быть размещён блок Main navigation, а новая ссылка добавлена в пользовательское меню «Footer links». Разместите блок именно нужного меню.
- Ссылка ведёт на страницу доступа. Если у посетителя нет разрешения на просмотр материала, Drupal может показать страницу входа или отказ в доступе. Проверьте URL в режиме инкогнито и права доступа к самой странице.
- Изменения не видны из-за кеша. Очистите кеш через Конфигурация → Разработка → Производительность, если этот раздел доступен вашей роли. В боевом проекте не отключайте кеширование надолго: оно влияет на скорость и нагрузку на сервер.
Как проверить навигацию перед публикацией
Проверяйте меню не только из-под администратора. Административная сессия может скрыть проблему с правами и кешем.
- Откройте сайт в приватном окне браузера.
- Пройдите по каждому пункту верхнего уровня и по каждому дочернему пункту.
- Проверьте мобильное меню: длинные названия и третий уровень часто ломают доступ к ссылкам на узком экране.
- Убедитесь, что текущая страница визуально выделяется, если это предусмотрено темой.
- Проверьте ссылки после переноса с тестового сайта: внутренний путь должен вести на рабочий домен, а не на адрес стенда.
Если пунктов больше нескольких десятков, сначала сгруппируйте их по задачам посетителя. Меню не должно повторять всю карту сайта: для глубоких разделов используйте отдельную страницу-каталог или поиск.
Что делать дальше
После создания меню проверьте его на телефоне и в приватном окне, затем настройте резервное копирование перед массовой перестройкой навигации. Для рабочего сайта полезно отдельно проверить доступность: ссылки должны быть доступны с клавиатуры, а названия — понятны без визуального контекста. Если требуется мегаменю, автоматическое раскрытие по ролям или навигация по таксономии, сначала изучите совместимость модуля с вашей версией Drupal и активной темой.
Сноска. Регион темы — именованная область шаблона Drupal, например шапка, боковая колонка или подвал, куда можно поместить блок.
Репетитор 1—11 класс и ВУЗ: Математика и физика методом наведения на мысль, помощь с ДЗ.
Спросить за 8 ₽Источники: Drupal.org: Working with menus, Drupal.org: Working with blocks
Частые вопросы
Почему пункт меню есть в админке, но его не видно на сайте?
Можно ли создать меню без программирования?
Как сделать пункт меню некликабельным заголовком?
Почему подменю не открывается на мобильном телефоне?
Нужно ли очищать кеш после каждого изменения меню?
Подойдут ли эти шаги для другой версии Drupal?
Материал носит информационный характер и подготовлен редакцией «Агентуры». Он не является офертой, рекламой или индивидуальной консультацией. Упомянутые продукты, компании и торговые знаки принадлежат их правообладателям. Перед принятием решений, влекущих юридические или финансовые последствия, обратитесь к профильному специалисту.