Как удалить стили админ-панели только из фронтенда?

5 окт. 2011 г., 11:28:16
Просмотры: 27.2K
Голосов: 15

Когда пользователь авторизован, админ-панель добавляет следующий код в секцию <head> страницы:

<style media="screen" type="text/css">
    html { margin-top: 28px !important; }
    * html body { margin-top: 28px !important; }
</style>

Я могу убрать это, отключив админ-панель:

/* Отключение админ-панели */
add_filter( 'show_admin_bar', '__return_false' );

или удалив её полностью:

/* Удаление админ-панели */
remove_action('init', 'wp_admin_bar_init');

Я хочу сохранить админ-панель в административном интерфейсе и только удалить CSS из фронтенда.

Я уже использую сброс CSS, где установлено margin: 0px, но стили админ-панели переопределяют это.

Как можно удалить эти стили только из фронтенда?

PS. Я знаю, что могу отключить админ-панель для каждого пользователя отдельно, но это не то, что мне нужно.

1
Комментарии

Это отвечает на ваш вопрос? Удалить верхнюю панель администратора

T.Todua T.Todua
14 мая 2020 г. 23:31:49
Все ответы на вопрос 4
8
29
function hide_admin_admin_bar_from_front_end(){
  if (is_blog_admin()) {
    return true;
  }
  return false;
}
add_filter( 'show_admin_bar', 'hide_admin_bar_from_front_end' );

Редактирование:

Как предложил @Walf в комментариях, это можно записать как:

add_filter('show_admin_bar', 'is_blog_admin');
5 окт. 2011 г. 11:47:25
Комментарии

Ах :) Я проверял для админа, когда пробовал что-то подобное. Забыл про is_blog_admin. Спасибо :)

Steven Steven
5 окт. 2011 г. 12:08:28

в какой файл это добавлять... я совсем новичок в WP...

User User
3 окт. 2012 г. 16:46:00

@HiroProtagonist это можно определить в любом плагине или в functions.php вашей темы.

Maxim Krizhanovsky Maxim Krizhanovsky
3 окт. 2012 г. 17:17:05

Однако это не удаляет CSS margin-top: 28px !important на фронтенде, верно?

jjeaton jjeaton
14 мая 2013 г. 02:18:38

Спасибо, дружище...сработало идеально

Shwet Shwet
29 мая 2013 г. 10:18:07

Можно немного сократить: add_filter( 'show_admin_bar', function (){ return is_blog_admin() });

Alessandro Benoit Alessandro Benoit
26 апр. 2016 г. 15:19:25

Можно значительно сократить: add_filter('show_admin_bar', 'is_blog_admin'); Я предложил это изменение, но оно было отклонено. Видимо, два опытных рецензента посчитали это слишком кардинальным изменением, не осознав, что это в точности то же самое.

Walf Walf
14 нояб. 2019 г. 07:19:37

Спасибо. Помогло :)

Arman H Arman H
7 окт. 2020 г. 13:35:03
Показать остальные 3 комментариев
0

Если вы хотите удалить панель администратора (админ-бар) И CSS-отступ со страницы, используйте этот код:

function wpse_99333_hide_admin_bar_from_front_end(){
  if ( is_blog_admin() ) {
    return true;
  }
  remove_action( 'wp_head', '_admin_bar_bump_cb' );
  return false;
}
add_filter( 'show_admin_bar', 'wpse_99333_hide_admin_bar_from_front_end' );

Функция _admin_bar_bump_cb отвечает за вставку CSS (находится в файле wp-includes/admin-bar.php)

14 мая 2013 г. 02:22:17
0

Я бы сделал так:

Удалить админ-бар / CSS в head / body class

show_admin_bar(false);

Или если нужно просто: Удалить CSS с margin-top для html в <head>

function remove_admin_bar_bump() {
   remove_action('wp_head', '_admin_bar_bump_cb');
}
add_action('get_header', 'remove_admin_bar_bump');

Проверено на: Версии 4.7.3

5 сент. 2016 г. 14:27:12
0

Недавно мне потребовалось сделать подобное — я хотел убрать стандартные inline CSS стили WordPress для админ-панели (чтобы она не отображалась в верхней части страницы), но при этом оставить саму панель. Я размещал админ-панель внизу страницы, а не вверху.

Вот что помогло мне отключить вставку стилей из функции _admin_bar_bump_cb. Я добавил следующий код в файл functions.php:

// Удаляем inline CSS стили WordPress для админ-панели
function hide_admin_bar_from_front_end(){
  remove_action( 'wp_head', '_admin_bar_bump_cb' );
  return true;
}
add_filter( 'show_admin_bar', 'hide_admin_bar_from_front_end' );
8 нояб. 2013 г. 22:00:55