Flector

Как удалить или изменить верхнюю панель?

Изменение верхней панели

Одним из самых частых вопросов, связанных с WordPress является вопрос об удалении или изменении верхней панели (WordPress Toolbar). Эту панель можно удалить только для пользователей, оставив ее для администраторов. Можно удалить ее вообще абсолютно для всех пользователей. Так же можно изменить ее, удалив из нее ненужные вам элементы вроде ссылок на WordPress-ресурсы, ссылку на профиль пользователя или ссылку на комментарии. Но давайте по порядку.

Простое скрытие верхней панели для всех

Добавьте в файл functions.php вашей темы следующий код:

add_filter('show_admin_bar', '__return_false');

Этот код скроет верхнюю панель от всех, включая администраторов. Это самый простой способ скрытия панели и в этом состоит его недостаток - в профиле пользователя по-прежнему будет доступна настройка "Показывать верхнюю панель при просмотре сайта", хотя она и не будет больше ни на что влиять.

Полное скрытие верхней панели для всех

Добавьте в файл functions.php вашей темы следующий код:

//полное скрытие верхней панели от всех start 
function hide_toolbar() {
?>
<style type="text/css">
    .show-admin-bar {
        display: none;
    }
</style>
<?php
}
function wph_disable_toolbar() {
    add_filter('show_admin_bar', '__return_false');
    add_action('admin_print_scripts-profile.php', 'hide_toolbar');
}
add_action('init', 'wph_disable_toolbar', 9);
add_filter('show_admin_bar', '__return_false'); 
//полное скрытие верхней панели от всех end

В этом случае верхняя панель будет полностью скрыта от всех пользователей, включая администраторов. В профиле больше не будет опции настройки вывода верхней панели.

Простое скрытие верхней панели для всех, кроме админов

Добавьте в файл functions.php вашей темы следующий код:

//скрытие панели для всех кроме админов start
function wph_del_toolbar($content) {
    return (current_user_can("administrator")) ? $content : false;
}
add_filter('show_admin_bar' , 'wph_del_toolbar');
//скрытие панели для всех кроме админов end

Этот код скроет верхнюю панель для всех, кроме администраторов сайта. В профиле пользователей по-прежнему будет выводиться опция настройки вывода верхней панели.

Полное скрытие верхней панели для всех, кроме админов

Добавьте в файл functions.php вашей темы следующий код:

//полное скрытие панели от всех кроме админов start
function hide_toolbar() {
?>
<style type="text/css">
    .show-admin-bar {
        display: none;
    }
</style>
<?php
}
function wph_disable_toolbar() {
   if (!current_user_can("administrator")) {
      add_filter('show_admin_bar', '__return_false');
      add_action('admin_print_scripts-profile.php', 'hide_toolbar');
   }
}
add_action('init', 'wph_disable_toolbar', 9);
//полное скрытие панели от всех кроме админов end

В этом случае верхняя панель будет полностью скрыта от всех, кроме администраторов сайта. Опция настройки вывода верхней панели в профиле будет видна только у администраторов сайта.

Скрытие поиска в верхнем меню

Добавьте в файл functions.php вашей темы следующий код:

//удаление поиска из панели start
function hide_search_toolbar () { ?>
    <style type="text/css">
       #wpadminbar #adminbarsearch {
       display: none; }
    </style>
<?php }
add_action('admin_head', 'hide_search_toolbar');
add_action('wp_head', 'hide_search_toolbar');
//удаление поиска из панели end

Данный код удалит поиск из верхней панели для всех пользователей сайта.

Удаление пунктов меню из панели

Добавьте в файл functions.php вашей темы следующий код:

//удаление из панели "комментариев" start
function wph_new_toolbar() {
    global $wp_admin_bar;
    $wp_admin_bar->remove_menu('comments');
}
add_action('wp_before_admin_bar_render', 'wph_new_toolbar');
//удаление из панели "комментариев" end

Данный код удалит из верхней панели меню "Комментарии". Полный список меню, которые можно удалить:

//удаление из панели элементов меню start
function wph_new_toolbar() {
    global $wp_admin_bar;
    $wp_admin_bar->remove_menu('comments');    //меню "комментарии"
    $wp_admin_bar->remove_menu('my-account');  //меню "мой профиль"
    $wp_admin_bar->remove_menu('edit');        //меню "редактировать запись"
    $wp_admin_bar->remove_menu('new-content'); //меню "добавить"
    $wp_admin_bar->remove_menu('updates');     //меню "обновления"
    $wp_admin_bar->remove_menu('wp-logo');     //меню "о wordpress"
    $wp_admin_bar->remove_menu('site-name');   //меню "сайт"
    $wp_admin_bar->remove_menu('my-sites');    //меню "мои сайты"
}
add_action('wp_before_admin_bar_render', 'wph_new_toolbar');
//удаление из панели элементов меню end

Оставьте в этом коде только те меню, которые вам необходимо скрыть. Полный список всех меню, которые выводятся в верхней панели, вы можете найти в файле "wp-includes\admin-bar.php" (время от времени разработчики удаляют или добавляют новые меню в верхнюю панель, поэтому актуальный список меню надо смотреть именно в этом файле движка).


Комментарии (20 комментариев)
  1. Я так панель не скрываю. Мне через нее удобно заходить в админку. Ну а скрыть панель можно в настройках профиля. Только она если не ошибаюсь будет скрываться только на блоге. В админке она не исчезнет.

    • Flector:

      да я тоже не скрываю. но все лишнее вроде поиска, комментариев и ссылок я из нее удаляю. мне так удобнее.

  2. Не так просто оказалось найти эту тему, все пишут как убрать ссылку из меты, спасибо. Раньше проблем с этим не было, начались после обновления последней версии WordPress:
    4.3.2-alpha и настройки BuddyPress.
    PS а я в настройках пока плохо разбираюсь.

  3. Здравствуйте!
    А как убрать "Настроить" и "Обновить тему"?

  4. Уже разобралась по аналогии, спасибо автору!

  5. Можно вопрос не по теме? Как отключить фильтр прозрачности Alpha?

    • Flector:

      где? в большинстве случаев достаточно отредактировать style.css темы. если, конечно, вы говорите про прозрачность элементов темы.

  6. Павел:

    Здравствуйте, у меня сайт на хостинге Hostenko и в wp-admin в левом вехнем углу отображается их меню. Причем, ладно бы я его только видел, его видят и пользователи (подписчики сайта). Как можно убрать?

    • Flector:

      вангую, что вы воспользовались автоустановкой от хостера. вам надо переустановить wordpress из консоли.

  7. Супер, единственная понятная статья +++++

  8. Валерий:

    здравствуйте!действительно все понятно.спасибо!
    скажите а как применить все эти настройки лишь для подписчиков?

    • Flector:

      обернуть функцию в конструкцию:

      if (current_user_can("subscriber")) {
          тут код функции
      }
      • Анжела:

        Этот способ не рекомендован кодексом:
        "Passing role names to current_user_can() is discouraged as this is not guaranteed to work correctly"
        https://codex.wordpress.org/Function_Reference/current_user_can

        Вот другой, более правильный способ:

        1
        2
        3
        4
        5
        6
        7
        8
        
        function new_admin_bar() {
          global $wp_admin_bar;
          $user_info = wp_get_current_user();
          if ( $user_info->roles[0] == 'subscriber' ){
            $wp_admin_bar->remove_menu('wp-logo');
          }
        }
        add_action('wp_before_admin_bar_render', 'new_admin_bar');

        Кстати не упомянут аналогичный приведенным способ удаления поиска:

        1
        
        $wp_admin_bar->remove_menu('search');

        Но статья супер! Спасибо за освещенную тему:)

  9. Валерий:

    Полное скрытие верхней панели для всех, кроме админов. только чтоб у них была значок профиля с фото

    • Flector:

      нельзя полностью скрыть и чтобы при этом осталась аватарка. воспользуйтесь кодом "Удаление пунктов меню из панели", оставив меню "мой профиль".

  10. Валерий:

    только что сломал сайт)после того как вставил

    if (current_user_can("subscriber")) {
    $wp_admin_bar->remove_menu('site-name'); //меню "сайт"
    }

    нажал обновить,пишет сайт не работает.короче пришлость в рхрадмин исправлять и уберать этот код.убрал все заоработало.
    а вообще спасибо !помогла статья

    • Flector:

      неправильно вставили, значит.
      код то полностью рабочий.

  11. Александр:

    Добрый день, подскажите пожалуйста, а какой код будет, что бы у админа в toolbar осталось всё как есть, а пользователь видел только мой профиль. (в файле admin-bar.php надеюсь найду нужные строки).

Написать комментарий

Для вставки кода воспользуйтесь кнопкой "Код". Используйте предпросмотр!