Админ-бар в WordPress — это удобный инструмент, который отображается в верхней части сайта для авторизованных пользователей и предоставляет быстрый доступ к полезным функциям. Зачастую стандартного функционала админ-бара недостаточно, особенно если нужно добавить свои пункты меню или изменить поведение элементов. В этой статье я подробно расскажу, как создать собственный админ-бар в WordPress, добавить свои элементы и сделать его удобным для администраторов и редакторов.
Что такое админ-бар и почему стоит создавать свой
Админ-бар — это панель инструментов, которая появляется в верхней части сайта для авторизованных пользователей. По умолчанию WordPress выводит там меню с быстрым доступом к панели управления, редактированию страниц, комментариям и другим функциям.
Однако часто возникает необходимость добавить собственные кнопки или разделы, например, для быстрого перехода к кастомным типам записей, настройкам плагинов, отчетам и т.д. Это особенно актуально для сайтов с большим количеством пользователей и кастомным функционалом.
Создание собственного админ-бара позволяет:
- Оптимизировать рабочий процесс пользователей;
- Добавить брендированные элементы;
- Скрыть или изменить стандартные пункты меню;
- Улучшить юзабилити и ускорить доступ к важным разделам.
Как добавить собственные пункты в админ-бар WordPress
Для работы с админ-баром WordPress использует объект $wp_admin_bar, который доступен в хуке admin_bar_menu. Добавлять свои пункты нужно именно через этот хук.
Вот минимальный пример добавления нового пункта меню:
add_action('admin_bar_menu', 'adminwpstuff_add_custom_admin_bar', 100);
function adminwpstuff_add_custom_admin_bar($wp_admin_bar) {
$args = array(
'id' => 'adminwpstuff_custom_link',
'title' => 'Мой пункт меню',
'href' => site_url('/custom-page/'),
'meta' => array(
'class' => 'adminwpstuff-custom-class',
'title' => 'Перейти на кастомную страницу',
),
);
$wp_admin_bar->add_node($args);
}
В этом коде мы добавляем новый пункт с ID adminwpstuff_custom_link, который ведет на страницу /custom-page/. Параметр meta позволяет добавить CSS-класс и подсказку.
Добавление вложенных пунктов меню (подменю)
Админ-бар позволяет создавать иерархию меню, что полезно для группировки элементов. Для этого нужно указать параметр parent в массиве аргументов.
Пример:
add_action('admin_bar_menu', 'adminwpstuff_add_submenu_admin_bar', 101);
function adminwpstuff_add_submenu_admin_bar($wp_admin_bar) {
// Родительский пункт
$wp_admin_bar->add_node(array(
'id' => 'adminwpstuff_parent',
'title' => 'Админ WPStuff',
'href' => '#'
));
// Подпункт
$wp_admin_bar->add_node(array(
'id' => 'adminwpstuff_subitem1',
'title' => 'Настройки',
'parent' => 'adminwpstuff_parent',
'href' => admin_url('options-general.php?page=wpstuff-settings')
));
}
Таким образом создается выпадающее меню с заголовком «Админ WPStuff» и подпунктом «Настройки».
Условное отображение пунктов меню
Очень часто пункты админ-бара нужно показывать только определённым ролям или пользователям. Для этого используется функция current_user_can().
Пример показа пункта только администраторам:
function adminwpstuff_add_custom_admin_bar($wp_admin_bar) {
if (!current_user_can('administrator')) {
return; // Выходим, если не администратор
}
$wp_admin_bar->add_node(array(
'id' => 'adminwpstuff_admin_only',
'title' => 'Только для админов',
'href' => '#'
));
}
add_action('admin_bar_menu', 'adminwpstuff_add_custom_admin_bar', 100);
Отключение стандартных пунктов админ-бара
Если нужно убрать ненужные пункты, например, ссылку на «Обновления» или «Комментарии», это делается через метод remove_node().
add_action('admin_bar_menu', 'adminwpstuff_remove_default_nodes', 999);
function adminwpstuff_remove_default_nodes($wp_admin_bar) {
$wp_admin_bar->remove_node('comments');
$wp_admin_bar->remove_node('updates');
}
Это удобно для кастомизации интерфейса и уменьшения загромождения админ-бара для определённых ролей.
Как стилизовать собственный админ-бар
Для изменения стилей админ-бара можно добавить CSS через хук admin_head или подключить отдельный файл стилей.
Пример добавления стилей для нашего пункта меню:
add_action('admin_head', 'adminwpstuff_custom_admin_bar_styles');
function adminwpstuff_custom_admin_bar_styles() {
echo '<style>
#wpadminbar .adminwpstuff-custom-class {
background-color: #0073aa;
color: #fff;
font-weight: bold;
}
#wpadminbar .adminwpstuff-custom-class:hover {
background-color: #005177;
}
</style>';
}
Такой подход позволяет выделить собственные пункты, сделать их заметными и удобными.
Примеры полезных дополнений для админ-бара
Помимо добавления простых ссылок, админ-бар можно использовать для выполнения полезных функций:
- Быстрый доступ к отчетам или аналитике;
- Вызов модальных окон с формами обратной связи;
- Интеграция с плагинами, например, вывод статистики из WPGPT для получения подсказок;
- Управление виджетами или настройками темы.
Вот пример добавления пункта с вызовом JavaScript-алерта:
add_action('admin_bar_menu', 'adminwpstuff_add_alert_button', 102);
function adminwpstuff_add_alert_button($wp_admin_bar) {
$args = array(
'id' => 'adminwpstuff_alert',
'title' => 'Показать сообщение',
'href' => '#',
'meta' => array(
'onclick' => 'alert("Привет от admin.wpstuff.ru!"); return false;',
),
);
$wp_admin_bar->add_node($args);
}
Поддержка плагинов и тем WPShop
Если вы используете продукты с WPShop, можно интегрировать их с кастомным админ-баром. Например, добавить быстрый доступ к настройкам Clearfy Pro или Expert Review прямо в панель администратора.
Это позволит ускорить работу и сделать интерфейс более удобным для себя и коллег.
Поддержка мультиязычности в админ-баре
Если ваш сайт многоязычный, важно, чтобы админ-бар корректно отображал пункты на нужном языке. Для этого используйте функции локализации WordPress:
add_action('admin_bar_menu', 'adminwpstuff_add_i18n_node', 103);
function adminwpstuff_add_i18n_node($wp_admin_bar) {
$title = __('Мой пункт меню', 'adminwpstuff');
$wp_admin_bar->add_node(array(
'id' => 'adminwpstuff_i18n',
'title' => $title,
'href' => '#'
));
}
Не забудьте добавить файл перевода для своего плагина или темы, если вы создаете более сложный функционал.
Вывод
Создание собственного админ-бара в WordPress — мощный инструмент для улучшения интерфейса и ускорения работы с сайтом. С помощью простых хуков и методов можно добавить удобные ссылки, меню и даже интерактивные элементы. Используйте условное отображение, стили и интеграцию с плагинами для максимального комфорта.
Если хотите расширить функционал без лишнего кода, обратите внимание на плагины WPShop, которые помогут с настройкой и оптимизацией.