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:
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.
quelle
body
von zu verwenden,html, body { height: 100%;}
damit es nur HTML ist.Antworten:
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
:Ich gehe davon aus, dass Ihre Fußzeile ihr bereits
position: relative
zugewiesen wurde, wie im Beispiel auf dem von Ihnen angegebenen Link angegeben.quelle
is_admin_bar_showing()
Funktion gesucht . Wusste nicht, dass es das gibt. Vielen Dank!