Проблема с админ-панелью и фиксированным заголовком?
Я настроил заголовок сайта с фиксированным позиционированием вверху страницы. Когда я авторизован в WordPress, панель администратора перекрывает верхнюю часть заголовка, делая невозможным доступ к верхней навигации. Я хотел бы, чтобы панель администратора WordPress сдвигала мою верхнюю навигацию вниз, чтобы оба элемента были видны. Кто-нибудь знает решение этой проблемы?
Пример моей проблемы можно увидеть на... www.nickriversdesign.com/dev

body.admin-bar — это правильный селектор (и это правильный ответ). Ответ Zach L влияет на всех вошедших пользователей, но только у пользователей с правами редактирования контента видна панель администратора, и им нужно сместить заголовок вниз страницы.

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

Примечание о версии: .admin-bar
больше не появляется в WordPress 4. Теперь он называется #wpadminbar
и не оборачивает контент, поэтому вышеуказанное не может быть применено к версии 4+

Также доступна версия на SASS, вместе с объяснением для мобильных/десктопных разрешений (адаптивные сайты) и подходом mobile-first: https://www.sitepoint.com/getting-sticky-headers-wordpress-admin-bar-behave/

Попробуйте это решение для WordPress 4+. Оно проверяет наличие админ-бара и при его наличии сдвигает фиксированный заголовок вниз, чтобы компенсировать это.
// исправление для админ-бара
if ($('#wpadminbar')[0])
$('.site-header').css('top', '32px')

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

Я долго искал способ адаптации админ-панели WordPress под фиксированную навигационную панель в Bootstrap 5. Это лучшее решение, которое сработало идеально для меня без добавления лишнего кода. Спасибо!

Я считаю, что на устройствах с меньшей шириной экрана wpadminbar не имеет фиксированного позиционирования. Таким образом, при прокрутке документа на смартфоне админ-панель будет следовать за скроллом и не останется в верхней части окна. Учитывая это, почему бы не добавить немного JavaScript в подвал вашей темы сразу после вызова wp_head()
. Таким образом, мы можем определить ширину устройства и наличие админ-панели в документе. Затем просто создадим несколько CSS-правил и добавим их в заголовок документа — как показано ниже!
<script>
( function(e) {
var ab = document.getElementById( 'wpadminbar' );
if ( typeof( ab ) === 'object' && window.innerWidth >= 610 ) {
var abh = ab.offsetHeight || ab.clientHeight || ab.scrollHeight;
var style = document.createElement( 'style' );
style.id = 'adminbar_main_nav_controle_rules';
document.getElementsByTagName( 'head' )[0].appendChild( style );
var rules = document.createTextNode( 'body.admin-bar .main-navigation.fixed { margin-top: ' + abh + 'px !important; }' );
style.appendChild( rules );
console.debug( 'wpadmibar space is covered' );
}
})();
</script>
Предполагая, что ваша навигация имеет класс 'main-navigation'
, а при скролле добавляется ещё один класс 'fixed'
. Измените CSS, чтобы нацелиться на вашу панель навигации, заменив 'body.admin-bar .main-navigation.fixed'
на тот селектор, который вам нужен.
Это можно дополнительно улучшить, например, проверив, зафиксирована ли админ-панель или нет, но пока надеюсь, что это поможет.
