Как удалить пустое меню в WordPress: практическое руководство

В процессе разработки и настройки WordPress-сайта часто возникает ситуация, когда в теме отображается пустое меню, которое не содержит пунктов. Это может привести к проблемам с дизайном и пользовательским опытом. В этой статье мы подробно рассмотрим, как эффективно удалить пустое меню в WordPress, используя как код, так и плагины.

Почему появляется пустое меню в WordPress

Пустое меню появляется по нескольким причинам:

  • Меню зарегистрировано, но для него не назначены пункты в админке;
  • В теме вызов меню происходит без проверки на наличие пунктов;
  • Плагин или кастомный код создает меню, но не наполняет его ссылками.

Пустое меню не только портит внешний вид сайта, но и может сбивать с толку посетителей. Поэтому важно «прятать» или удалять такие меню.

Удаление пустого меню через код в functions.php

Первый способ решения — это добавить проверку в файл functions.php вашей темы или в собственный плагин, которая будет выводить меню только если у него есть пункты.

Вот пример функции с префиксом wpmark_, которая проверяет наличие пунктов меню и выводит меню только если оно не пустое:

function wpmark_display_menu_if_not_empty($location) {
    if (has_nav_menu($location)) {
        $menu_items = wp_get_nav_menu_items(get_nav_menu_locations()[$location]);
        if (!empty($menu_items)) {
            wp_nav_menu(array('theme_location' => $location));
        }
    }
}

Использовать функцию в шаблоне темы можно так:

<?php wpmark_display_menu_if_not_empty('primary'); ?>

Здесь 'primary' — это идентификатор зарегистрированного меню. Если меню пустое — оно не выведется вовсе.

Регистрация меню с учетом проверки

Если вы регистрируете меню в functions.php, то делайте это стандартно:

function wpmark_register_menus() {
    register_nav_menus(array(
        'primary' => 'Основное меню',
        'footer' => 'Меню в подвале'
    ));
}
add_action('after_setup_theme', 'wpmark_register_menus');

Далее в шаблонах выводите меню через нашу функцию с проверкой, чтобы не показывать пустые меню.

Использование плагинов для управления меню и удаления пустых

Если вы не хотите лезть в код, можно использовать плагины, которые помогают контролировать отображение меню.

Плагин Nav Menu Roles

Плагин Nav Menu Roles позволяет задавать условия отображения пунктов меню, например, по ролям пользователя. С его помощью можно скрыть пункты, чтобы меню не было пустым, либо убрать меню для определенных пользователей.

Плагин If Menu – Visibility control for Menu Items

Этот плагин добавляет условия видимости для пунктов меню. Можно настроить, чтобы пустые пункты не отображались, а меню, в котором нет видимых пунктов, автоматически скрывалось.

Автоматическое удаление пустых меню через хуки

Можно также использовать фильтры для удаления пустых меню на уровне WordPress. Например, при выводе меню с помощью wp_nav_menu можно применить фильтр wp_nav_menu_args, чтобы менять аргументы вывода.

function wpmark_filter_nav_menu_args($args) {
    $locations = get_nav_menu_locations();
    if (isset($locations[$args['theme_location']])) {
        $menu_items = wp_get_nav_menu_items($locations[$args['theme_location']]);
        if (empty($menu_items)) {
            $args['fallback_cb'] = false; // отключаем fallback
            $args['menu'] = false; // не выводим меню
        }
    }
    return $args;
}
add_filter('wp_nav_menu_args', 'wpmark_filter_nav_menu_args');

Этот фильтр проверяет наличие пунктов у меню и если их нет, то отключает вывод меню и fallback.

Пример комплексного решения для темы Reboot

Если вы используете тему Reboot от WPSHOP, то можно встроить вышеописанную функцию wpmark_display_menu_if_not_empty в шаблон header.php. Это позволит избежать пустых областей меню при отсутствии пунктов.

Также рекомендую использовать плагин Clearfy Pro, который оптимизирует работу WordPress и может помочь управлять выводом разных элементов, включая меню.

Советы по работе с меню в WordPress

Для предотвращения появления пустых меню следуйте простым рекомендациям:

  • Регулярно проверяйте назначение пунктов меню в админке;
  • Используйте кастомные функции с проверками, как в нашем примере;
  • Используйте условные теги WordPress для контроля вывода меню;
  • Включайте fallback меню с осмысленным содержанием или отключайте fallback;
  • При разработке темы тестируйте вывод меню на пустых и заполненных локациях.

Итог

Удаление пустых меню в WordPress — задача простая, но требующая внимания к деталям. Используйте функции с проверкой пунктов меню, фильтры для управления выводом и при необходимости плагины для удобства. Это улучшит внешний вид и UX вашего сайта.

Как автоматизировать создание и удаление временных файлов в WordPress
23.02.2026
Как создать автоматический заголовок для постов в WordPress с помощью кода и плагинов
05.03.2026
Решение проблемы нерабочих хуков WooCommerce после обновления
03.06.2026
Как удалить и заблокировать загрузочные файлы в WordPress
26.03.2026
Как создать автоматический снимок экрана страницы в WordPress
28.01.2026