Хук show_admin_bar
в WordPress позволяет контролировать отображение панели администратора (тулбара) на сайте, когда пользователь авторизован. Он полезен для скрытия панели для определённых ролей пользователей или полного отключения на фронтенде. Панель не скрывается в админке, так как хук влияет только на отображение на внешней стороне сайта.
apply_filters( 'show_admin_bar', bool $show_admin_bar );
Фильтр show_admin_bar
управляет отображением панели администратора, также называемой тулбаром. Чтобы скрыть панель, достаточно вернуть false
. Этот способ рекомендуется для случаев, когда необходимо отключить тулбар для определённых пользователей или всех пользователей, кроме администраторов. Настройки пользователя также влияют на отображение панели для авторизованных пользователей.
Параметры
- $show_admin_bar (булевое значение) — указывает, должна ли отображаться панель администратора. По умолчанию:
false
.
Использование
Для активации или деактивации панели используйте функцию add_filter()
с хендлером, который будет управлять значением $show_admin_bar
.
add_filter( 'show_admin_bar', 'custom_show_admin_bar', 10, 1 );
/**
* Кастомизация отображения панели администратора.
*
* @param bool $show_admin_bar Должна ли отображаться панель администратора.
* @return bool
*/
function custom_show_admin_bar( $show_admin_bar ) {
// Внесите изменения в значение $show_admin_bar при необходимости
return $show_admin_bar;
}
Пример 1: Полное отключение панели администратора на фронтенде
Если нужно скрыть панель администратора для всех пользователей на внешней стороне сайта, используйте встроенную функцию __return_false
:
add_filter( 'show_admin_bar', '__return_false' );
Пример 2: Отображение панели администратора только для администраторов
Чтобы показать панель администратора только для пользователей с ролью администратора, можно использовать проверку роли:
add_filter( 'show_admin_bar', 'show_admin_bar_for_admins_only' );
function show_admin_bar_for_admins_only( $show_admin_bar ) {
return current_user_can( 'administrator' ) ? $show_admin_bar : false;
}
Пример 3: Скрытие панели для всех, кроме редакторов и администраторов
Если нужно скрыть панель для всех, кроме пользователей с правами редактора и администратора, можно сделать это с помощью проверки возможности редактирования чужих записей:
add_filter( 'show_admin_bar', 'show_admin_bar_for_editors_and_admins' );
function show_admin_bar_for_editors_and_admins( $show_admin_bar ) {
return current_user_can( 'edit_others_posts' ) ? $show_admin_bar : false;
}
Пример 4: Отключение панели администратора на определённых страницах
Иногда требуется отключить панель только на определённых страницах. В этом примере панель будет скрыта на страницах с шаблоном landing-page.php
:
add_filter( 'show_admin_bar', 'disable_admin_bar_on_landing_page' );
function disable_admin_bar_on_landing_page( $show_admin_bar ) {
if ( is_page_template( 'landing-page.php' ) ) {
return false;
}
return $show_admin_bar;
}
Пример 5: Отключение панели администратора в админке
Хотя хук show_admin_bar
влияет только на фронтенд, если необходимо скрыть тулбар в админке, можно использовать следующий метод:
// Отключение тулбара в админ-панели
remove_action( 'in_admin_header', 'wp_admin_bar_render', 0 );
Заключение
Хук show_admin_bar
— удобный инструмент для управления панелью администратора на фронтенде WordPress. С его помощью можно гибко настраивать видимость панели в зависимости от роли пользователя или других условий, делая интерфейс более удобным для различных групп пользователей.