Панель администратора WordPress нажала Sticky Footer в нижней части страницы.

Я реализовал один очень распространенный липкий нижний колонтитул Райана Файта в пользовательской теме WordPress. Я заметил теперь, если я внедряю панель администратора WordPress на мои страницы, что на 28 пикселей выше (в текущей версии WordPress хотя бы …), она также подталкивает липкий нижний колонтитул вниз на 28 пикселей.

Вот панель администратора:

введите описание изображения здесь

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

Я мог бы, очевидно, использовать jQuery после того, как готовое событие срабатывает, чтобы увидеть, есть ли панель администратора или нет, и соответствующим образом изменить нижний колонтитул, но я предпочел бы избежать этого, если это возможно, и просто создать страницу, чтобы начать с нуля … Есть идеи?

Также я хочу, чтобы тема работала с версиями WordPress в ближайшем будущем. Поэтому, если в будущей версии они решили изменить панель администратора на что-то отличное от 28px, то я не хочу, чтобы мой код был скорректирован для компенсации изменений.

Нижний колонтитул вытесняется из-за того, что WP добавит поля на вашу страницу всякий раз, когда панель администратора настроена на показ. Функция, ответственная за это, называется _admin_bar_bump_cb() и расположена по адресу wp-includes / admin-bar.php. Плохая новость заключается в том, что он использует настройку 28px с привязкой (что означает, что вы не сможете ее извлечь и использовать в своих функциях), а также объявление «! Important», которое вы не сможете последовательно переопределить в чтобы избежать изменения высоты в будущем.

Я считаю, что лучше всего будет проверить, отображается ли панель администратора и корректирует нижний колонтитул соответственно. Это должно быть так же просто, как добавить это в ваши functions.php :

 add_action('wp_head', 'adjust_sticky_footer'); function adjust_sticky_footer() { if(is_admin_bar_showing()) { ?> <style type="text/css"> .footer { /* Adjust selector according to your theme */ bottom: 28px; } </style> <?php } } 

Я предполагаю, что у вашего нижнего колонтитула уже есть position: relative назначенная ему, в соответствии с примером в приведенной ссылке.