Die Wordpress Admin Bar hat die Sticky Footer vom unteren Rand der Seite entfernt

7

Ich habe Ryan Faits ach so übliche klebrige Fußzeile in einem benutzerdefinierten Wordpress-Thema implementiert . Ich habe jetzt festgestellt, dass wenn ich die Wordpress-Admin-Leiste in meine Seiten implementiere, die 28 Pixel hoch ist (mindestens in der aktuellen Wordpress-Version ...), die klebrige Fußzeile ebenfalls um 28 Pixel nach unten gedrückt wird.

Hier ist die Admin-Leiste:

Geben Sie hier die Bildbeschreibung ein

Wie auch immer, Wordpress funktioniert so, dass die Admin-Leiste oben auf den Seiten angezeigt wird oder nicht, je nachdem, wie Admin-Benutzer ihre Einstellungen festlegen. Ich möchte es also nicht einfach aus dem Thema entfernen.

Ich könnte natürlich jQuery verwenden, nachdem das Ereignis ready ausgelöst wurde, um zu sehen, ob die Admin-Leiste vorhanden ist oder nicht, und die Fußzeile entsprechend ändern, aber ich würde lieber versuchen, dies nach Möglichkeit zu vermeiden und die Seite zunächst ordnungsgemäß generieren zu lassen ... Irgendwelche Ideen?

Außerdem möchte ich, dass das Thema mit Versionen von Wordpress in naher Zukunft funktioniert. Wenn sie sich also in einer zukünftigen Version dafür entscheiden, die Admin-Leiste auf etwas anderes als 28px hoch zu ändern, muss mein Code nicht angepasst werden, um die Änderung zu kompensieren.

Jake Wilson
quelle
Versuchen Sie, das Entfernen bodyvon zu verwenden, html, body { height: 100%;}damit es nur HTML ist.
Wyck
Dies ist eine CSS- Frage, keine WordPress- Frage.
Chip Bennett
2
Sehr verwandt, da es speziell um die Entwicklung von Wordpress-Themen geht.
Jake Wilson

Antworten:

5

Die Fußzeile wird herausgeschoben, da WP Ihrer Seite Ränder hinzufügt, wenn die Admin-Leiste angezeigt wird. Die dafür verantwortliche Funktion wird aufgerufen _admin_bar_bump_cb()und befindet sich unter wp-includes / admin-bar.php. Die schlechte Nachricht ist, dass eine harcodierte 28px-Einstellung verwendet wird (was bedeutet, dass Sie sie nicht abrufen und in Ihren Funktionen verwenden können), zusammen mit einer "! Wichtigen" Deklaration, die Sie nicht konsistent überschreiben können um Höhenänderungen in Zukunft zu vermeiden.

Ich denke, Ihre beste Wette wäre, zu überprüfen, ob die Admin-Leiste angezeigt wird, und die Fußzeile entsprechend anzupassen. Dies sollte so einfach sein wie das Hinzufügen zu 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
    }
}

Ich gehe davon aus, dass Ihre Fußzeile ihr bereits position: relativezugewiesen wurde, wie im Beispiel auf dem von Ihnen angegebenen Link angegeben.

Tomas Buteler
quelle
Ah, ich habe nach der is_admin_bar_showing()Funktion gesucht . Wusste nicht, dass es das gibt. Vielen Dank!
Jake Wilson