
🔒 Как скрыть админ-бар WordPress для всех пользователей, кроме администраторов
Сделали сайт для клиента, передали доступы, а через день звонок: «Почему у меня на сайте какая-то чёрная полоса сверху? Я ничего не понимаю, это выглядит странно». Знакомая ситуация?
По умолчанию WordPress показывает админ-бар (тёмную панель в самом верху экрана) всем залогиненным пользователям. Для администратора это удобно: быстрый доступ к консоли, редактирование страниц, управление комментариями. Но для обычного пользователя, подписчика или клиента эта полоса выглядит как визуальный мусор. Она закрывает шапку сайта, путает и создаёт ощущение «недоделанности».
Разберём три работающих способа убрать админ-бар WordPress для всех, кроме администраторов. От быстрой настройки в профиле до чистого кода в functions.php и плагина. Плюс бонус: как отключить тулбар вообще для всех, включая админов.
💡 Быстрый обзор:
- Способ 1: отключаем админ-бар вручную в профиле пользователя (если их 2-3)
- Способ 2: добавляем PHP-код в
functions.phpчерез хукshow_admin_bar, рекомендуемый метод - Способ 3: устанавливаем плагин Hide Admin Bar Based on User Roles (без касания кода)
- Бонус: скрываем админ-бар для всех пользователей, включая администраторов
Что такое админ-бар и зачем его отключать
Админ-бар, он же Toolbar, это тёмная горизонтальная полоса, которая появляется в самом верху сайта после входа в учётную запись. Не путайте с админ-панелью (/wp-admin): это разные вещи. Админ-бар виден и на фронтенде, и в консоли.
Для администратора в нём собраны быстрые ссылки: создать пост, зайти в кастомайзер, посмотреть комментарии. Для редактора, переход к материалам. Но для подписчика или покупателя в WooCommerce там лишь пара пунктов вроде «Редактировать профиль», а полоса занимает 32 пикселя по высоте и перекрывает шапку.
Когда вы отдаёте сайт клиенту или запускаете членский раздел, админ-бар для непривилегированных пользователей становится проблемой:
- клиент думает, что сайт сломан;
- пользователь случайно жмёт «Админ» и попадает в
/wp-admin(пусть и с ограниченными правами, всё равно путаница); - дизайн шапки ломается, особенно на мобильных.
Отключение админ-бара для не-администраторов решает всё это одним движением.

Способ 1: отключаем вручную в профиле пользователя
Самый простой путь, снять одну галочку в настройках конкретного человека. Подходит, когда пользователей немного: буквально 2-3 учётные записи.
Перейдите в Пользователи → Все пользователи, наведите на нужного и нажмите «Изменить». Найдите опцию «Показывать панель инструментов при просмотре сайта» и снимите флажок. Прокрутите вниз, нажмите «Обновить пользователя».
Готово. Для этого человека админ-бар исчез с фронтенда. Минус очевиден: на 50 пользователей вы потратите час монотонной работы.
Способ 2: код в functions.php, рекомендуемый метод
Универсальное решение для любого количества пользователей. Один фрагмент PHP, и админ-бар скрыт для всех, у кого нет прав администратора.
WordPress предоставляет фильтр show_admin_bar. Именно его рекомендует официальная документация разработчика: фильтр корректно обрабатывает и пользовательские настройки отображения, и глобальные правила. Старый подход с прямым вызовом show_admin_bar(false) всё ещё работает, но фильтр, чище и гибче.
Код добавляется в файл functions.php активной темы. Безопаснее всего, через плагин WPCode (бесплатный): он исключает риск опечатки и не зависит от смены темы.
1 /** 2 * Скрываем админ-бар WordPress для всех, 3 * кроме администраторов. 4 */ 5 add_filter( 'show_admin_bar', 'sdstudio_restrict_admin_bar' ); 6 7 function sdstudio_restrict_admin_bar( $show ) { 8 return current_user_can( 'administrator' ) ? $show : false; 9 }
Как это работает. Фильтр show_admin_bar вызывается каждый раз при рендеринге страницы. Функция sdstudio_restrict_admin_bar проверяет: если у текущего пользователя есть возможность administrator, возвращает исходное значение $show (как настроено у админа в профиле). Для всех остальных, принудительно false, админ-бар не показывается.
Куда вставлять код. Вот три варианта:
- WPCode (рекомендуем): плагин → Code Snippets → Add Snippet → вставить код → Auto Insert → Save. Работает даже после смены темы.
- functions.php темы: Appearance → Theme File Editor → functions.php. Риск: обновление темы затрёт изменения. Используйте только в дочерней теме.
- Свой плагин: создайте
/wp-content/plugins/sdstudio-disable-admin-bar/sdstudio-disable-admin-bar.phpс заголовком плагина и этим же кодом. Надёжно и не зависит от темы.
После вставки откройте сайт в инкогнито-окне под тестовой учётной записью с ролью «Подписчик». Админ-бар должен исчезнуть.
Способ 3: плагин, для тех, кто не хочет трогать код
Бесплатный плагин Hide Admin Bar Based on User Roles решает задачу парой кликов. Устанавливается стандартно: Плагины → Добавить новый → поиск по названию → Установить → Активировать.
После активации перейдите в Настройки → Hide Admin Bar Settings. Вы увидите список всех ролей на сайте: администратор, редактор, автор, подписчик и любые кастомные. Отметьте флажками те роли, для которых админ-бар нужно скрыть, и сохраните.
Плюс плагина, наглядность. Вы видите все роли сразу и управляете видимостью админ-бара без единой строчки кода. Минус, ещё один плагин в системе. Если сайт уже нагружен расширениями, лучше выбрать способ 2.
Бонус: как отключить админ-бар для всех, включая администраторов
Иногда админ-бар мешает даже вам. Например, вы верстаете шапку сайта и чёрная полоса портит обзор. Или делаете скриншоты для портфолио.
Самый короткий способ, одна строка:
1 add_filter( 'show_admin_bar', '__return_false' );
Этот фильтр принудительно возвращает false для всех без исключения. Администратор, редактор, подписчик, админ-бар исчезает у всех на фронтенде. В консоли (/wp-admin) тулбар при этом остаётся: WordPress не отключает его в админке с версии 3.3.
Если нужно убрать админ-бар и в консоли тоже, добавьте CSS:
1 #wpadminbar { display: none !important; } 2 html { margin-top: 0 !important; }
Второе правило убирает 32-пиксельный отступ, который WordPress резервирует под админ-бар. Аккуратно: в консоли без тулбара вы потеряете быстрый доступ к созданию постов и настройкам. Используйте только временно, для вёрстки или скриншотов.
⁉️🤔 Частые вопросы
В чём разница между админ-баром и админ-панелью WordPress?
Админ-бар (Toolbar), это тёмная полоса в самом верху экрана, видна на фронтенде и в консоли после входа. Админ-панель (
/wp-admin), это полноценный бэкенд WordPress: консоль, список постов, настройки. Отключение админ-бара не закрывает доступ к/wp-admin, пользователь всё ещё может туда зайти, если знает URL.
Код не сработал, админ-бар всё равно виден. В чём дело?
Три частые причины. Первая: вы проверяете под администратором, метод из способа 2 оставляет админ-бар для админов намеренно, проверяйте под тестовым подписчиком. Вторая: кеш. Сбросьте кеш плагина (WP Rocket, LiteSpeed) и откройте сайт в инкогнито. Третья: код вставлен не в то место.
functions.phpдочерней темы, да.wp-config.php, нет, фильтры там не работают.
Можно ли скрыть админ-бар для конкретной роли, например только для подписчиков?
Да. Замените
current_user_can( 'administrator' )на проверку нужной роли. Например, чтобы скрыть для подписчиков:return current_user_can( 'subscriber' ) ? false : $show;. Или используйте плагин из способа 3, там это делается флажками.
Что будет с админ-баром после обновления WordPress?
Ничего. Хук
show_admin_barсуществует с версии 3.1 и никуда не денется. Это часть ядра, не темы и не плагина. Код из способа 2 будет работать после любого обновления WordPress.
Безопасно ли отключать админ-бар для клиентов?
Абсолютно. Админ-бар, это элемент интерфейса, а не механизм безопасности. Права доступа определяются ролью пользователя, и отключение тулбара на них не влияет. Клиент не потеряет доступ к тому, что ему действительно разрешено.
Скрывать админ-бар или оставить: что выбрать
Для администратора и редактора админ-бар, рабочий инструмент. Быстрые переходы к созданию поста, модерации комментариев и кастомайзеру экономят десятки кликов в день. Для всех остальных это визуальный мусор.
Если на сайте больше трёх пользователей с ролями ниже редактора, ставьте код из способа 2. Одна минута, и вопрос закрыт навсегда. Работает на любом количестве учётных записей, не зависит от темы и переживает обновления WordPress. Для быстрой правки на себя, бонусный сниппет с __return_false.
А если вы только начинаете разбираться с WordPress и код в functions.php пока пугает, плагин из способа 3 решит задачу без риска что-то сломать. Выберите роли, отметьте флажками, сохраните. Через месяц, когда освоитесь, замените плагин на код, одной строчкой.



