Меню администратора WordPress — это ключевой элемент интерфейса, с которым ежедневно взаимодействуют пользователи и разработчики. Иногда стандартное меню необходимо упростить, расширить или адаптировать под конкретные задачи. В этой статье мы подробно разберём, как кастомизировать меню админ-панели WordPress с помощью встроенных функций, хуков и фильтров. Вы узнаете, как скрывать пункты меню, добавлять свои разделы, а также изменять порядок и внешний вид элементов.
Почему важно настраивать меню администратора WordPress
Стандартное меню WordPress подходит большинству пользователей, но в ряде случаев его нужно подстроить под специфические требования проекта. Например, если вы создаёте сайт для клиента, у которого ограниченный набор задач, можно убрать лишние пункты, чтобы не запутывать пользователя. Для мультисайтовых установок или сайтов с нестандартными ролями администраторов и редакторов важна гибкость управления доступом к разделам.
Кроме того, добавление собственных пунктов меню помогает интегрировать уникальные функции или внешние сервисы прямо в админку. Это повышает удобство работы, экономит время и упрощает навигацию. Поэтому умение работать с меню администратора — важный навык для любого разработчика WordPress.
Основные методы настройки меню администратора в WordPress
WordPress предоставляет несколько способов модификации меню админ-панели:
- Использование функций
remove_menu_page()иremove_submenu_page()для удаления пунктов меню. - Добавление новых пунктов через
add_menu_page()иadd_submenu_page(). - Изменение порядка пунктов с помощью фильтра
custom_menu_orderи хукаmenu_order. - Использование CSS и JavaScript для изменения внешнего вида и поведения меню.
Далее рассмотрим каждый метод подробнее с конкретными примерами кода.
Удаление и скрытие пунктов меню
Чтобы убрать ненужные пункты меню из админ-панели, используйте функцию remove_menu_page(). Например, если в проекте не нужны разделы «Комментарии» и «Плагины», их можно скрыть так:
function wp_themes_remove_menus() {
remove_menu_page('edit-comments.php'); // Комментарии
remove_menu_page('plugins.php'); // Плагины
}
add_action('admin_menu', 'wp_themes_remove_menus');Если нужно убрать вложенный пункт, например, «Добавить новый» в разделе «Записи», применяется remove_submenu_page():
function wp_themes_remove_submenus() {
remove_submenu_page('edit.php', 'post-new.php'); // «Добавить новую» запись
}
add_action('admin_menu', 'wp_themes_remove_submenus');Обратите внимание, что удалять пункты меню стоит с осторожностью, чтобы не сломать работу других плагинов или функций. Лучше сначала удостовериться, что эти пункты не нужны конечным пользователям.
Добавление собственных пунктов меню и подменю
Для интеграции уникальных функций в админку можно создавать новые разделы меню. Функция add_menu_page() добавляет главный пункт меню, а add_submenu_page() — вложенные.
Пример добавления нового пункта меню, который открывает страницу с кастомным контентом:
function wp_themes_add_custom_menu() {
add_menu_page(
'WP-Themes Настройки', // Заголовок страницы
'WP-Themes', // Название пункта меню
'manage_options', // Возможность (роль)
'wp_themes_settings', // Уникальный слаг
'wp_themes_render_settings_page', // Функция вывода контента
'dashicons-admin-appearance', // Иконка
60 // Позиция меню
);
}
add_action('admin_menu', 'wp_themes_add_custom_menu');
function wp_themes_render_settings_page() {
echo '<div class="wrap"><h1>Настройки WP-Themes</h1><p>Здесь можно настроить параметры темы.</p></div>';
}Такой подход позволяет создавать удобные панели управления для ваших тем или плагинов.
Добавляем подменю
Чтобы добавить подменю, вызовите add_submenu_page() внутри той же функции:
function wp_themes_add_custom_submenu() {
add_submenu_page(
'wp_themes_settings', // Родительский слаг меню
'Дополнительные настройки', // Заголовок страницы
'Дополнительно', // Название подменю
'manage_options', // Возможность
'wp_themes_additional', // Уникальный слаг подменю
'wp_themes_render_additional_page' // Функция вывода
);
}
add_action('admin_menu', 'wp_themes_add_custom_submenu');
function wp_themes_render_additional_page() {
echo '<div class="wrap"><h1>Дополнительные настройки WP-Themes</h1><p>Здесь можно настроить более тонкие параметры.</p></div>';
}Так вы создадите логичную структуру меню с разделами и подразделами.
Изменение порядка пунктов меню
Стандартный порядок пунктов меню не всегда устраивает. Чтобы изменить его, используйте фильтр custom_menu_order и возвращайте свой массив с ключами меню в нужном порядке через хук menu_order.
function wp_themes_custom_menu_order($menu_order) {
if (!$menu_order) return true;
return array(
'index.php', // Консоль
'edit.php?post_type=page', // Страницы
'edit.php', // Записи
'wp_themes_settings', // Наш кастомный пункт
'upload.php', // Медиафайлы
'edit-comments.php', // Комментарии
'themes.php', // Внешний вид
'plugins.php', // Плагины
'users.php', // Пользователи
'tools.php', // Инструменты
'options-general.php' // Настройки
);
}
add_filter('custom_menu_order', '__return_true');
add_filter('menu_order', 'wp_themes_custom_menu_order');Так вы полностью контролируете порядок отображения пунктов меню в админке.
Использование плагинов для настройки меню администратора
Если вы не хотите писать код, существуют готовые плагины, которые помогут настроить меню админки:
- Admin Menu Editor — позволяет визуально редактировать меню, менять порядок, скрывать пункты, менять иконки.
- White Label CMS — даёт возможность кастомизировать админ-панель, в том числе меню, для клиентов.
- WP Admin UI Customize — гибкая настройка интерфейса, включая меню и панель инструментов.
Однако для точных и комплексных изменений лучше использовать собственный код, который мы рассмотрели выше.
Заключение
Настройка меню администратора WordPress — практичный способ улучшить удобство работы в админке, адаптировать её под конкретные нужды проекта. Используя функции remove_menu_page(), add_menu_page(), фильтры для порядка меню и примеры из этой статьи, вы сможете создавать удобные и понятные интерфейсы для себя и клиентов.