В процессе разработки или настройки WordPress часто возникает ситуация, когда в административной панели появляются пустые или ненужные пункты меню. Это ухудшает восприятие интерфейса и может запутать конечных пользователей и администраторов сайта. В этой статье мы подробно разберём, как найти и удалить пустое меню в админке WordPress, используя как стандартные хуки, так и примеры с кодом.
Почему появляются пустые меню в админке WordPress
Пустые меню могут возникать по нескольким причинам. Часто это связано с некорректной работой плагинов или тем, которые регистрируют свои пункты меню, но по каким-то причинам не добавляют в них подменю или содержимое. Иногда меню остаются после деактивации плагинов, если они не удаляют свои меню правильно.
Другие причины:
- Ошибки в коде, где регистрируется меню через
add_menu_pageбез подменю или контента; - Ручное добавление меню в functions.php или в плагинах с ошибками;
- Конфликты между плагинами, приводящие к частичному удалению контента меню.
Для устранения таких меню нужно выявить их идентификаторы и удалить через соответствующие хуки.
Как найти ID пустого меню в админке WordPress
Для удаления меню вам нужно знать его slug или идентификатор. Вот несколько способов определения ID пустого меню:
1. Использование браузерных инструментов разработчика
Откройте админку WordPress, найдите пустое меню и кликните по нему правой кнопкой мыши, выберите "Просмотреть код" или "Inspect". В HTML-коде найдите элемент <li> с классом menu-top и атрибутом id. Обычно ID выглядит как toplevel_page_slug.
2. Добавление временного кода для вывода меню
Добавьте в functions.php темы или в плагин следующий код, который выведет все зарегистрированные меню с их slug:
function wpaction_list_admin_menus() {
global $menu;
echo '<pre>';
print_r($menu);
echo '</pre>';
}
add_action('admin_menu', 'wpaction_list_admin_menus', 9999);
После этого в админке в верхней части страницы вы увидите массив меню с их идентификаторами. Найдите нужный slug пустого меню.
Удаление пустого меню через код в WordPress
После того как вы узнали slug меню, можно безопасно его удалить. Для этого используется функция remove_menu_page().
Пример кода для удаления меню с идентификатором toplevel_page_example:
function wpaction_remove_empty_menu() {
remove_menu_page('toplevel_page_example');
}
add_action('admin_menu', 'wpaction_remove_empty_menu', 999);
Обратите внимание на приоритет 999, чтобы наш код сработал после регистрации всех меню.
Удаление нескольких пустых меню
Если у вас несколько таких меню, просто вызовите remove_menu_page для каждого:
function wpaction_remove_multiple_empty_menus() {
$menus_to_remove = [
'toplevel_page_example1',
'my_custom_empty_menu',
'tools.php?page=empty'
];
foreach ($menus_to_remove as $menu_slug) {
remove_menu_page($menu_slug);
}
}
add_action('admin_menu', 'wpaction_remove_multiple_empty_menus', 999);
Автоматическое удаление меню от неактивных плагинов с помощью плагина Clearfy Pro
Если в вашем проекте используется плагин Clearfy Pro, он помогает управлять меню и очищать админку от лишних элементов без необходимости писать код.
В Clearfy есть настройка для скрытия меню от неиспользуемых или неактивных плагинов, а также для удаления пустых пунктов. Это особенно полезно, если у вас много плагинов и вы хотите сделать админку более удобной.
Как убрать пустые подменю, оставшиеся после удаления главного меню
Иногда после удаления главного меню остаются пустые подменю. Их тоже можно удалить с помощью remove_submenu_page().
Пример удаления подменю:
function wpaction_remove_empty_submenu() {
remove_submenu_page('toplevel_page_example', 'toplevel_page_example_submenu');
}
add_action('admin_menu', 'wpaction_remove_empty_submenu', 999);
Первый параметр – slug родительского меню, второй – slug подменю.
Выводы и рекомендации
Удаление пустых меню в админке позволяет сделать интерфейс чище и удобнее для пользователей. Для этого важно:
- Определить slug меню с помощью инструментов разработчика или вывода массива
$menu; - Использовать
remove_menu_page()иremove_submenu_page()с правильным приоритетом; - Проверять работу плагинов и тем, чтобы они корректно удаляли свои меню при деактивации;
- Использовать готовые решения, например, Clearfy Pro, для удобного управления меню без кода.
Используя эти методы, вы легко сможете убрать пустые и ненужные пункты меню, сделав административную панель WordPress чище и понятнее.