Функция show_admin_bar()
в WordPress позволяет контролировать видимость панели инструментов (или админ-бара) на лицевой части сайта. В админ-панели WordPress отключить панель нельзя, но на фронтэнде её можно скрыть с помощью этой функции.
show_admin_bar( bool $show )
Параметры
- $show (bool, обязательный) — Указывает, нужно ли показывать панель. Устанавливается в
true
для отображения панели илиfalse
для её скрытия.
Эту функцию можно вызывать сразу после загрузки плагина или темы, помещая её в файл functions.php
. Необязательно вызывать её в событии init
.
Пример 1: Отключение панели инструментов на фронтэнде
Чтобы полностью отключить панель инструментов на фронтэнде, добавьте следующий код в файл functions.php
вашей темы. Панель больше не будет отображаться для всех пользователей на внешней стороне сайта:
<?php
// Отключаем панель инструментов на фронтэнде
show_admin_bar( false );
Пример 2: Отключение панели для всех пользователей, кроме администратора
Если нужно, чтобы панель отображалась только для администраторов, можно использовать проверку прав пользователя с помощью функции current_user_can()
. Код ниже отключит панель для всех, кроме пользователей с правами администратора:
<?php
add_action( 'init', function() {
if ( ! current_user_can( 'manage_options' ) ) {
show_admin_bar( false );
}
});
Пример 3: Жесткое отключение панели инструментов
Чтобы гарантированно отключить панель инструментов и предотвратить её отображение даже в случае конфликта с плагинами, используйте фильтр show_admin_bar
с функцией __return_false
:
<?php
// Жесткое отключение панели инструментов для всех пользователей
add_filter( 'show_admin_bar', '__return_false' );
Примечание: этот метод обладает более высоким приоритетом, чем вызов
show_admin_bar()
, и рекомендуем использовать его только в приватных темах и на внутренних сайтах, так как он может вызывать конфликты с плагинами.
Пример 4: Отключение панели для определённого типа записей
Этот пример скрывает панель инструментов только на страницах с записями типа course
. Это удобно для скрытия панели на страницах курсов или любых других специфичных для вашего сайта типах записей.
<?php
add_action( 'wp', function() {
if ( is_singular( 'course' ) ) {
add_filter( 'show_admin_bar', '__return_false' );
}
});
Пример 5: Условное отображение панели инструментов для пользователей с правами на редактирование записей
Допустим, вам нужно разрешить пользователям с правами редактирования записей отображать панель, если они выберут её в настройках профиля. Этот код позволит пользователям с правами редактирования включить панель в своих настройках:
<?php
add_filter( 'show_admin_bar', function( $show ) {
if ( empty( $show ) ) {
return false;
}
if ( current_user_can( 'edit_posts' ) ) {
$show_option = get_user_option( 'show_admin_bar_front' );
return ( 'true' === $show_option ) ? true : false;
}
return false;
});
Пример 6: Отключение панели инструментов только для главной страницы
Чтобы скрыть панель инструментов только на главной странице, используйте условный тег is_front_page()
:
<?php
add_action( 'wp', function() {
if ( is_front_page() ) {
show_admin_bar( false );
}
});
Пример 7: Отключение панели для пользователей, не являющихся авторами
Допустим, нужно скрыть панель инструментов для всех, кто не имеет права создавать записи (не является автором). В этом случае проверим права пользователя с помощью функции current_user_can( 'publish_posts' )
:
<?php
add_action( 'init', function() {
if ( ! current_user_can( 'publish_posts' ) ) {
show_admin_bar( false );
}
});
Заключение
Функция show_admin_bar()
в WordPress предоставляет гибкий способ управления отображением панели инструментов. Вы можете использовать её для настройки видимости панели по ролям пользователей, типам записей и другим условиям, обеспечивая удобный интерфейс и функциональность на вашем сайте.