Административное меню WordPress — ключевой элемент для управления сайтом. Часто возникает необходимость убрать ненужные пункты меню, переименовать их или добавить свои собственные. В этой статье мы подробно разберём, как кастомизировать меню админки WordPress с помощью кода и плагинов, чтобы сделать админ-панель удобнее и безопаснее для пользователей.
Почему важно кастомизировать меню админки WordPress
Во-первых, удаление ненужных пунктов меню помогает снизить риск случайных изменений новичками или редакторами, которые не должны иметь доступа к определённым разделам.
Во-вторых, переименование пунктов меню позволяет адаптировать интерфейс под терминологию вашего проекта и сделать его более интуитивным.
В-третьих, добавление собственных пунктов меню — отличный способ интегрировать кастомные функции или инструменты в админ-панель без необходимости заходить в код темы или плагинов.
Удаление и скрытие пунктов меню: хук wp24_remove_admin_menu_items
Для удаления пунктов меню в WordPress используется функция remove_menu_page() и remove_submenu_page(). Чтобы сделать этот процесс удобнее и избежать конфликтов, создадим свою функцию с префиксом wp24_.
function wp24_remove_admin_menu_items() {
// Удаляем меню «Комментарии»
remove_menu_page('edit-comments.php');
// Удаляем меню «Плагины»
remove_menu_page('plugins.php');
// Удаляем подменю «Тема» из меню «Внешний вид»
remove_submenu_page('themes.php', 'themes.php');
}
add_action('admin_menu', 'wp24_remove_admin_menu_items', 999);В этом примере мы удаляем меню «Комментарии» и «Плагины», а также подменю «Темы». Код нужно разместить в functions.php вашей темы или в отдельном плагине.
Определение ID пунктов меню
Чтобы узнать ID пунктов меню, можно временно включить отладку или использовать плагин Admin Menu Editor — он позволяет визуально управлять меню и смотреть технические имена страниц.
Переименование пунктов меню: как изменить названия через код
Переименование пунктов меню — менее очевидная задача, так как WordPress не предоставляет штатных функций для этого. Однако можно использовать хук gettext для замены названий на лету.
function wp24_rename_admin_menu_items($translated_text, $text, $domain) {
if (is_admin()) {
switch ($translated_text) {
case 'Posts':
$translated_text = 'Статьи';
break;
case 'Pages':
$translated_text = 'Страницы сайта';
break;
case 'Comments':
$translated_text = 'Отзывы';
break;
}
}
return $translated_text;
}
add_filter('gettext', 'wp24_rename_admin_menu_items', 20, 3);В этом коде мы меняем названия пунктов «Posts» на «Статьи», «Pages» на «Страницы сайта» и «Comments» на «Отзывы». Можно расширять список под свои нужды.
Добавление собственных пунктов меню и страниц
Часто нужно добавить свои разделы в админку для управления кастомным функционалом. Для этого используется функция add_menu_page() и add_submenu_page().
function wp24_add_custom_admin_menu() {
add_menu_page(
'WP24 Инструменты', // Заголовок страницы
'WP24 Инструменты', // Название меню
'manage_options', // Возможность доступа
'wp24_tools', // Ярлык меню
'wp24_tools_page_callback', // Функция вывода содержимого
'dashicons-hammer', // Иконка
81 // Позиция
);
add_submenu_page(
'wp24_tools',
'Настройки WP24',
'Настройки',
'manage_options',
'wp24_settings',
'wp24_settings_page_callback'
);
}
add_action('admin_menu', 'wp24_add_custom_admin_menu');
function wp24_tools_page_callback() {
echo '<h1>Добро пожаловать в WP24 Инструменты</h1>';
echo '<p>Здесь вы можете управлять дополнительными функциями вашего сайта.</p>';
}
function wp24_settings_page_callback() {
echo '<h1>Настройки WP24</h1>';
echo '<form method="post" action="options.php">';
settings_fields('wp24_settings_group');
do_settings_sections('wp24_settings');
submit_button();
echo '</form>';
}Этот код добавит в меню админки новый раздел «WP24 Инструменты» с подменю «Настройки» и простыми страницами.
Регистрация настроек для страницы настроек
Чтобы сделать страницу настроек функциональной, зарегистрируем параметры с помощью хуков Settings API:
function wp24_register_settings() {
register_setting('wp24_settings_group', 'wp24_option_example');
add_settings_section('wp24_main_section', 'Основные настройки', null, 'wp24_settings');
add_settings_field(
'wp24_option_example',
'Пример настройки',
'wp24_option_example_callback',
'wp24_settings',
'wp24_main_section'
);
}
add_action('admin_init', 'wp24_register_settings');
function wp24_option_example_callback() {
$value = get_option('wp24_option_example', '');
echo '<input type="text" name="wp24_option_example" value="'.esc_attr($value).'" />';
}Использование плагина Admin Menu Editor для удобного управления меню
Если вы предпочитаете визуальный интерфейс, плагин Admin Menu Editor — отличный выбор. Он позволяет перетаскивать пункты меню, менять названия, иконки, права доступа и даже экспортировать настройки.
Плагин совместим с большинством тем и плагинов, а также позволяет создавать собственные меню без программирования.
Примеры решения типичных задач с меню в WordPress
1. Убрать меню «Плагины» для роли редактора
function wp24_remove_plugins_menu_for_editor() {
if (current_user_can('editor') && !current_user_can('administrator')) {
remove_menu_page('plugins.php');
}
}
add_action('admin_menu', 'wp24_remove_plugins_menu_for_editor', 999);Это защитит сайт от случайного удаления плагинов редакторами.
2. Добавить кастомный пункт меню с формой обратной связи
function wp24_add_feedback_menu() {
add_menu_page('Обратная связь', 'Обратная связь', 'manage_options', 'wp24_feedback', 'wp24_feedback_page');
}
add_action('admin_menu', 'wp24_add_feedback_menu');
function wp24_feedback_page() {
echo '<h1>Форма обратной связи</h1>';
echo '<form method="post" action="">';
echo '<label>Ваше сообщение:</label><br>';
echo '<textarea name="feedback_message" rows="5" cols="50"></textarea><br>';
echo '<input type="submit" value="Отправить" />';
echo '</form>';
if ($_SERVER['REQUEST_METHOD'] == 'POST' && !empty($_POST['feedback_message'])) {
$message = sanitize_textarea_field($_POST['feedback_message']);
// Здесь можно отправить сообщение по email или сохранить в базу
echo '<p>Спасибо за ваше сообщение!</p>';
}
}Советы по безопасности при кастомизации меню
Всегда проверяйте права доступа через функции current_user_can() при добавлении и удалении пунктов меню, чтобы не дать лишних прав пользователям.
Избегайте удаления системных пунктов меню для администратора, чтобы не потерять доступ к важным настройкам.
Используйте префиксы wp24_ для функций, чтобы избежать конфликтов с другими плагинами и темами.
Заключение
Кастомизация меню в админке WordPress — мощный инструмент для упрощения работы с сайтом и повышения безопасности. В этой статье мы рассмотрели, как удалять, переименовывать и добавлять пункты меню с помощью кода и плагинов, а также привели практические примеры для типичных задач.
Если хотите расширить функционал с минимальным кодированием, рекомендуем обратить внимание на плагин Admin Menu Editor от WPShop.