Vier Wege, die Adminbar in WordPress auszublenden
2015
Die Standardeinstellung in WordPress zeigt für eingeloggte Benutzer die Adminbar oberhalb der Webseite an. Doch nicht immer will man diese anzeigen. Manchmal zerstört sie das Layout einer Seite, oder aber man möchte bestimmte Benutzergruppen die Adminbar nicht anzeigen.
Es gibt verschiedene Wege, die Adminbar auszuschalten. Dazu gehört natürlich als erstes die Möglichkeit, den entsprechenden Haken für einen Benutzer im Admin herauszunehmen.
Wenn es sich nur um ein, zwei Benutzer handelt, bei denen man dies machen möchte, so ist dies sicherlich der schnellste Weg. Unangenehmer wird es schon, wenn es sich um einige dutzend User handelt oder wenn man bei Neuanmeldungen diese Prozedur jedes Mal händisch durchführen muss.
Interessant ist deshalb, wo diese Information eigentlich gespeichert wird. Dabei handelt es sich um eine Metaangabe von Benutzern, welche in der wp_usermeta
-Tabelle der Datenbank abgelegt wird. Der entsprechende Schlüssel, unter welchem diese Einstellung gespeichert wird lautet 'show_admin_bar_front'
. Mit dem Wert 'true'
wird die Leiste angezeigt, der Wert 'false'
zeigt die Adminleiste hingegen nicht an. So könnte man beispielsweise während des Registrierungsprozesses den Wert auf 'false'
setzen:
Doch vielleicht möchte man die Toolbar auch nur auf bestimmten Sektionen der Seite verbergen. Verantwortlich für die Darstellung der Adminleiste sind die Funktionen _wp_admin_bar_init()
und wp_admin_bar_render()
in der Datei wp-includes/admin-bar.php. Bevor diese allerdings die Anzeige veranlassen, prüfen sie zunächst mit Hilfe von is_admin_bar_showing()
, ob die Bar angezeigt werden soll. Auch diese Funktion findet sich in der admin-bar.php. is_admin_bar_showing()
gibt lediglich einen Boolean zurück, ob die Leiste angezeigt werden soll. Mit Hilfe des Filters 'show_admin_bar'
kann man dabei in die Ausgabe der Bar eingreifen. So könnte man WordPress veranlassen, die Ausgabe auf Blogbeiträgen zu verhindern:
Natürlich bleibt auch noch die Möglichkeit, die Anzeige einfach mit CSS zu unterbinden. Die Adminbar verfügt über die ID '#adminbar'
, welche man einfach ausblenden kann:
#adminbar{ display: none; }
Doch damit ist das ursprüngliche Layout noch nicht komplett wieder hergestellt. Denn mit Hilfe von margin
schafft WordPress Platz für die Admin Bar, indem das gesamte HTML-Element 32 Pixel nach unten verschoben wird. Da dies alles in der 'wp_head'
-Aktion geschieht müssen die eigenen Definitionen später geladen werden. Eine Option wäre deshalb, sich in die 'wp_footer'
-Aktion einzuklinken und auch das HTML-Element wieder nach oben zu schieben. Zu beachten ist dabei, dass WordPress hier mit !important
arbeitet, was wir dann schließlich auch machen müssen:
Man sieht also, es gibt viele Wege, die Adminbar abzuschalten. Je nachdem, welche Anforderungen an die Anzeige bestehen, bietet sich der eine oder aber der andere Weg an.