Как убрать отступ в 32px для админбара сверху страницы для авторизованного пользователя

22.09.2022

В общем, задача такая – убрать базовые стили, которые задаются самим движком CMS WordPress для залогиненного юзера, чтобы админбар не влиял на высоту первого блока (чтобы не воровал высоту у первого блока на странице). То есть, если убрать эти базовые стили, то админбар будет перекрывать часть страницы без какого-либо отступа.

Вот такие стили мы уберем (хотя их убирать нужно в очень редких случаях, в 99% это не нужно вовсе):

html { margin-top: 32px !important; }
@media screen and ( max-width: 782px ) {
    html { margin-top: 46px !important; }
}

В файл functions.php добавляем такую функцию:

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

Но есть еще лучший способ убрать отступ для html — добавить add_theme_support для панели администратора с обратным вызовом '__return_false', тогда WordPress никогда не вызовет _admin_bar_bump_cb, которое отвечает за добавление в исходный код margin-top:32px.

add_theme_support( 'admin-bar', array( 'callback' => '__return_false' ) );

При этом, если у вас на сайте хедер или какой-то блок имеет фиксированную позицию к верху страницы, тогда я рекомендую добавлять такие стили, чтобы админбар не перекрывал хедер, и тот размещался сразу под админпанелью:

.admin-bar .header {
    top: 32px;
}

@media screen and ( max-width: 782px ) {
    .admin-bar .header {
        top: 46px;
    }
}

Рекомендую к прочтению:

Оставить комментарий