Функция is_admin_bar_showing()
в WordPress проверяет, отображается ли в данный момент панель администратора (Admin Bar) для текущего пользователя. Это может быть полезно при создании тем или плагинов, когда необходимо учитывать отображение панели администратора.
bool is_admin_bar_showing ( void )
Возвращаемое значение
Функция возвращает true
, если панель администратора отображается, и false
, если нет.
Пример 1: Условное отображение стилей
Предположим, вы хотите применить некоторые стили только в том случае, если панель администратора отображается. Вы можете использовать функцию is_admin_bar_showing()
следующим образом:
function my_custom_styles() {
if ( is_admin_bar_showing() ) {
echo '<style>
body {
margin-top: 32px;
}
@media screen and ( max-width: 782px ) {
body {
margin-top: 46px;
}
}
</style>';
}
}
add_action( 'wp_head', 'my_custom_styles' );
В этом примере, если панель администратора отображается, к элементу body
добавляется отступ сверху (это важно когда ваш первый экран имеет абсолютное позиционирование). Это полезно, чтобы содержимое страницы не перекрывалось панелью администратора.
Пример 2: Условное добавление скрипта
Другой пример — добавление JavaScript только для тех пользователей, у которых отображается панель администратора:
function my_custom_scripts() {
if ( is_admin_bar_showing() ) {
wp_enqueue_script( 'my-admin-bar-script', get_template_directory_uri() . '/js/admin-bar.js', array('jquery'), null, true );
}
}
add_action( 'wp_enqueue_scripts', 'my_custom_scripts' );
В этом примере скрипт admin-bar.js
подключается только тогда, когда отображается панель администратора. Это позволяет избежать лишней загрузки ресурсов для пользователей, у которых панель не отображается.
Отключение панели администратора
Фильтр show_admin_bar
Для отключения панели администратора можно использовать фильтр show_admin_bar
. Это правильный способ отключения панели для всех пользователей на сайте.
Для этого достаточно передать значение false
в данный фильтр. Добавьте следующий код в файл functions.php
вашей темы:
add_filter('show_admin_bar', '__return_false');
Альтернативный способ — создать собственную функцию, которая возвращает false
:
function disable_admin_bar() {
return false;
}
add_filter('show_admin_bar', 'disable_admin_bar');
Для того чтобы скрыть панель администратора для всех пользователей, кроме администраторов, можно использовать следующую функцию:
function hide_admin_bar_except_for_admin() {
if ( !current_user_can('administrator') ) {
return false;
} else {
return true;
}
}
add_filter('show_admin_bar', 'hide_admin_bar_except_for_admin');
Эта функция проверяет права текущего пользователя и отключает панель администратора, если пользователь не является администратором.
Заключение
Функция is_admin_bar_showing()
в WordPress — это простой способ проверить, отображается ли панель администратора для текущего пользователя. Используя эту функцию, можно гибко адаптировать темы и плагины, улучшая пользовательский опыт и оптимизируя загрузку ресурсов. Фильтр show_admin_bar
позволяет легко контролировать отображение панели администратора, что может быть полезно для улучшения интерфейса вашего сайта.