
В WordPress меню формируется через раздел Внешний вид → Меню или добавляется автоматически темой. Если необходимо полностью скрыть определённое меню, достаточно удалить его назначение в настройках «Области отображения». После этого выбранное меню перестанет отображаться в шапке или подвале сайта, в зависимости от области, к которой оно было привязано.
Если требуется убрать меню программно, в functions.php можно использовать unregister_nav_menu() для деактивации области, либо удалить вызов wp_nav_menu() из шаблона темы. Такой подход подходит для разработчиков, которые создают кастомные решения и хотят контролировать структуру сайта напрямую.
Удаление меню через настройки темы
Большинство современных тем WordPress позволяют отключать или скрывать меню без редактирования кода. Для этого используются встроенные настройки в «Настройщике» или разделе «Внешний вид».
- Перейдите в админ-панель → Внешний вид → Меню.
- Проверьте, к каким позициям привязаны меню (например, «Основное», «Верхнее», «Подвал»).
- Снимите галочки напротив всех позиций и сохраните изменения.
Если тема поддерживает отключение меню в «Настройщике», выполните следующие шаги:
- Зайдите в Внешний вид → Настроить.
- Откройте раздел Меню или Области меню.
- Установите «Без меню» или выберите пустое меню для каждой области.
Некоторые темы предоставляют отдельные опции в разделах Header или Layout, где можно отключить отображение навигации. В этом случае достаточно снять чекбокс «Показывать меню» или аналогичный параметр.
Если встроенной функции скрытия нет, создайте пустое меню и назначьте его на все позиции. Это позволит визуально убрать навигацию без вмешательства в код.
Отключение отображения меню в кастомайзере
Чтобы скрыть пункт «Меню» в кастомайзере WordPress, используйте хук customize_register. Он позволяет удалить ненужные секции из интерфейса настройки темы.
Пример кода для functions.php вашей темы:
function remove_customizer_menus( $wp_customize ) {
$wp_customize->remove_section( 'nav_menus' );
}
add_action( 'customize_register', 'remove_customizer_menus', 11 );
После добавления этого фрагмента раздел «Меню» исчезнет из панели кастомайзера. Другие настройки (виджеты, цвета, шрифты) останутся доступными без изменений.
Если нужно вернуть возможность редактирования меню, достаточно удалить или закомментировать указанный код.
Скрытие меню с помощью виджетов
WordPress позволяет управлять видимостью меню через виджеты. Для этого откройте раздел Внешний вид → Виджеты и найдите область, где размещается текущее меню, чаще всего это Header или Sidebar. Удаление виджета «Меню навигации» автоматически скрывает меню с выбранной позиции.
Если необходимо оставить меню в админке, но скрыть на фронтенде, используйте виджет Текст или HTML-код с условной проверкой PHP: if (!is_admin()) { /* код скрытия меню */ }. Это позволяет сохранить структуру сайта без удаления элементов.
Для сайтов с динамическими боковыми панелями применяйте плагин Widget Logic. Он добавляет поле условий отображения: можно прописать is_home() или !is_page('контакт') , чтобы меню отображалось только на определённых страницах.
После настройки виджетов убедитесь, что кэширование отключено или обновлено, иначе изменения могут не отобразиться. Этот способ подходит для гибкого контроля меню без редактирования темплейтов и CSS.
Удаление меню через панель навигации WordPress
Для удаления меню в WordPress необходимо перейти в админ-панель и открыть раздел Внешний вид → Меню. Здесь отображаются все созданные навигационные структуры. Если сайт использует несколько областей для меню, важно выбрать нужное из выпадающего списка в верхней части страницы.
Чтобы полностью удалить меню, нажмите ссылку Удалить меню внизу страницы. После подтверждения действия структура исчезнет со всех областей, к которым она была привязана. Если нужно убрать только отображение, но сохранить элементы, следует удалить назначение меню для конкретной локации через блок Настройки меню справа.
Если меню закреплено в виджете, откройте Внешний вид → Виджеты, выберите блок с меню и нажмите Удалить. Это гарантирует, что элементы не будут отображаться в сайдбаре или футере.
После удаления меню рекомендуется очистить кэш сайта и браузера. Некоторые темы используют встроенные кэшированные версии навигации, и без очистки изменения могут не отобразиться сразу.
Использование CSS для скрытия меню

Скрытие меню через CSS позволяет временно убрать элементы навигации без удаления кода шаблона. Для начала необходимо определить класс или идентификатор блока меню. В WordPress чаще всего это .main-navigation, #primary-menu или .menu. Используйте инспектор браузера для точного определения селектора.
Простейший метод скрытия:
CSS:
#primary-menu { display: none; }
Этот подход полностью убирает меню из визуального отображения и потока страницы. Если требуется скрыть меню, но сохранить его доступным для скринридеров, используйте:
#primary-menu { visibility: hidden; }
В отличие от display: none;, блок занимает место на странице, но становится невидимым.
Для адаптивного скрытия меню на определённых устройствах применяют медиазапросы:
@media (max-width: 768px) { .main-navigation { display: none; } }
Это гарантирует, что меню будет скрыто только на мобильных устройствах, сохраняя видимость на десктопах.
Для динамических или кастомных тем WordPress удобно использовать !important, чтобы переопределить встроенные стили темы:
.menu { display: none !important; }
Пример таблицы для сравнения методов скрытия меню:
| Метод | Описание | Эффект на поток страницы |
|---|---|---|
| display: none; | Полное скрытие меню | Элемент полностью удалён из потока |
| visibility: hidden; | Меню невидимо, но место сохраняется | Элемент занимает пространство |
| Медиазапросы | Скрытие на определённых экранах | Элемент скрыт выборочно |
| !important | Принудительное переопределение стилей темы | Элемент скрыт независимо от предыдущих правил |
Рекомендация: сначала тестируйте скрытие на локальной версии сайта, чтобы избежать сбоев в навигации, особенно при использовании сложных кастомных тем или плагинов.
Удаление меню в файлах header.php

<?php wp_nav_menu(array('theme_location' => 'primary')); ?>
Удаление меню выполняется путем удаления или закомментирования этой строки. Если меню обернуто в блок <nav> или <div class="menu-container">, рекомендуется удалить весь блок, чтобы не оставались пустые контейнеры.
В некоторых темах меню может подключаться через переменные или условия, например:
<?php if(has_nav_menu('primary')) { wp_nav_menu(array('theme_location' => 'primary')); } ?>
После редактирования header.php необходимо проверить сайт на наличие ошибок PHP. Рекомендуется создавать child theme для внесения изменений, чтобы сохранить возможность обновления основной темы без потери правок.
Если меню связано с кастомными walker-классами, убедитесь, что удалены вызовы этих классов в wp_nav_menu(), иначе будут появляться предупреждения.
После удаления строки меню следует очистить кэш сайта и браузера, чтобы убедиться, что изменения применились корректно.
Скрытие меню с помощью плагинов
Для управления видимостью меню в WordPress без редактирования кода используют плагины. Наиболее популярные решения предоставляют точечное скрытие меню на страницах, для определённых ролей пользователей или в мобильной версии сайта.
Рассмотрим несколько эффективных плагинов:
- WP Menu Visibility – позволяет скрывать отдельные пункты меню на страницах, категориях или постах. Настройка осуществляется через стандартный интерфейс «Внешний вид → Меню».
- If Menu – Visibility control for menus – обеспечивает условное отображение пунктов меню по ролям пользователей, авторизации или URL. Поддерживает вложенные меню и работает с кастомными ссылками.
- Max Mega Menu – помимо расширенных функциональных возможностей для создания мегаменю, включает опцию скрытия пунктов на отдельных устройствах (desktop, tablet, mobile).
Применение:
- Установите и активируйте выбранный плагин через «Плагины → Добавить новый».
- Откройте меню в разделе «Внешний вид → Меню».
- Для каждого пункта меню задайте условия отображения: страницы, роли пользователей, устройства.
- Сохраните изменения и проверьте отображение на фронтенде сайта.
Использование плагинов позволяет избежать правок в файлах темы, сохраняет совместимость с обновлениями WordPress и облегчает управление меню для пользователей без навыков программирования.
Совет: перед установкой плагина убедитесь в его совместимости с вашей версией WordPress и другими активными расширениями, чтобы избежать конфликтов и падения меню.
Отключение отдельных пунктов меню через код

Для удаления конкретного пункта меню в WordPress используется хук wp_nav_menu_items или фильтр wp_get_nav_menu_items. В файле functions.php темы добавьте функцию, проверяющую ID или название элемента и исключающую его из массива меню.
Пример для удаления элемента по ID:
add_filter('wp_get_nav_menu_items', function($items) {
foreach ($items as $key => $item) {
if ($item->ID == 42) {
unset($items[$key]);
}
}
return $items;
});
Для удаления по заголовку пункта меню можно использовать:
add_filter('wp_nav_menu_objects', function($items) {
foreach ($items as $key => $item) {
if ($item->title == 'Контакты') {
unset($items[$key]);
}
}
return $items;
});
Если нужно скрыть пункт только для определённых ролей пользователей, добавьте проверку через current_user_can():
add_filter('wp_nav_menu_objects', function($items) {
foreach ($items as $key => $item) {
if ($item->title == 'Админ-панель' && !current_user_can('manage_options')) {
unset($items[$key]);
}
}
return $items;
});
После внесения изменений очистите кеш меню и убедитесь, что ID или заголовок элемента совпадает с тем, который нужно удалить. Такой подход гарантирует точечное отключение без удаления всей структуры меню.
Вопрос-ответ:
Можно ли удалить меню с сайта без изменения темы?
Да, меню можно убрать через настройки WordPress, не трогая файлы темы. Для этого нужно перейти в «Внешний вид» → «Меню» и удалить назначение меню для конкретной области, например, для верхнего или бокового меню. После этого меню перестанет отображаться на сайте.
Что делать, если стандартные настройки не позволяют скрыть меню?
В случае, если меню не исчезает через стандартные настройки, можно использовать пользовательский CSS. В разделе «Внешний вид» → «Настроить» → «Дополнительные стили» добавьте правило вида display: none; для идентификатора или класса меню. Это полностью скроет меню на страницах сайта.
Можно ли убрать только одно меню, оставив другие активными?
Да, WordPress позволяет управлять каждым меню отдельно. В панели «Меню» можно выбрать конкретное меню и снять его привязку к области отображения, не затрагивая остальные. Таким образом, один блок меню исчезнет, а другие будут работать как раньше.
Удаление меню через редактирование файлов темы безопасно?
Редактирование файлов темы требует осторожности. Меню можно убрать, изменив код в файлах header.php или sidebar.php, но любое некорректное изменение может привести к ошибкам отображения сайта. Рекомендуется создавать дочернюю тему и в ней вносить изменения, чтобы сохранить возможность обновления основной темы без потерь.
Можно ли скрыть меню только на некоторых страницах?
Да, скрыть меню на отдельных страницах можно с помощью CSS или плагинов. Для CSS используют уникальные классы страниц, например .page-id-10 .menu, чтобы применить display: none; только там. Альтернативно, существуют плагины, позволяющие управлять видимостью меню для каждой страницы без ручного кода.
Можно ли убрать меню в WordPress без использования плагинов?
Да, убрать меню можно без плагинов. Для этого нужно перейти в раздел «Внешний вид» → «Меню» и удалить или деактивировать нужное меню. Если тема требует наличия хотя бы одного меню, можно создать пустое меню и назначить его вместо активного. Также есть вариант через редактирование файлов темы: в файле header.php можно временно закомментировать или удалить блок кода, отвечающий за вывод меню.
Как скрыть меню только на отдельных страницах WordPress?
Для скрытия меню на конкретных страницах чаще всего используется условная проверка в файле header.php или в шаблоне страницы. Например, можно добавить PHP-код с условием: проверка ID страницы или шаблона, и вывод меню только при несоответствии. Альтернативный способ — через CSS, добавив на нужную страницу уникальный класс к body и прописав для него display: none для блока меню. Этот вариант удобен, если редактировать код темы нежелательно.
