Adminleiste für bestimmte Nutzer ausblenden

Standardmäßig wird die Adminleiste (im Englischen Adminbar) für jeden Benutzer auf einer WordPress Website angezeigt. Die Adminleiste ist der schwarze Balken am oberen Rand der Website.

Adminleiste ausblenden 01

Die Adminleiste wird oben angezeigt.

Die Adminleiste dient unter anderem dazu, dass Nutzer Daten im WordPress Backend verändern können. In manchen Fällen will man aber nicht, dass der Nutzer überhaupt ins WordPress Backend kommt.

Daher zeige ich in diesem Beitrag, wie man die Adminleiste für alle Benutzerrollen ausser dem Administrator ausblendet.

Ab in den Code

Die folgenden Codezeilen platzierst du in der Datei functions.php:

Erklärung

In der if-Schleife fragen wir mittels der Funktion current_user_can() ab, ob der aktuelle Benutzer NICHT die Fähigkeit manage_options hat.

In Zeile 3 benutzen wir einen Filter und sagen WordPress, dass die Adminleiste nicht angezeigt werden soll.

Nun wird die Adminleiste nicht mehr angzeigt.

Adminleiste ist ausgeblendet.

Adminleiste ist ausgeblendet.

Gibt es eine Hintertür?

Natürlich, sonst würde ich nicht fragen. 🙂

Denn man braucht nur die URL der Webseite um „/wp-admin“ erweitern. So kommt man direkt ins Backend. Natürlich nur als eingeloggter User.

Hintertür

Hintertür

Zugriff auf Backend durch Plugin verhindern

In dem Fall hilft uns das Plugin Remove Dashboard Access.

Nach der Installation kommst du via Einstellungen > Dashboard Access zu den Optionen des Plugins.

Optionen für "Remove Dashboard Access" Plugin

Optionen für „Remove Dashboard Access“ Plugin

Die Standardeinstellung reicht für unser Beispiel aus. Ich will nämlich, dass nur Benuzter mit der Rolle Administrator Zugang zum Backend haben.

Eine weitere interessante Option ist „Advanced: Limit by capability:“. Dadurch kann man feingliedriger Zugänge zum Backend steuern. 

Resümee

Das ausblenden der Adminleiste/Adminbar in WordPress ist durch drei Zeilen Code leicht gelöst. Danach muss man noch auf die „Hintertür“ aufpassen. Diese lässt sich aber durch ein Plugin schließen.

  • matuzo

    Hallo,

    danke, funktioniert gut. Ich habe eine Frage bzw. Bedenken. Wenn die Rechte richtig gesetzt sind, kann ich in /wp-admin ja gar nichts „schlimmes“ machen. Oder geht es da wirklich nur um das Dashboard und die grundsätzliche Anzeige des Bars?
    Außerdem verliert der Benutzer dadurch die Möglichkeit, sein Profil zu bearbeiten. Dafür müsste man dann ein eigenes Menü erstellen (und auf der Profilseite wird der Bar erst recht wieder angezeigt ;)).

    Danke aber für den Tipp. Werde ich bei meinem aktuellen Projekt anwenden.

    matuzo

    • Martin Funk

      Hey Matuzo.

      Genau. Es geht darum, dass die Adminleiste nie angezeigt wird und der User nie ins Dashboard kommt.

      Auch richtig, dass der User dadurch seine Möglichkeit verliert, sein Profil zu bearbeiten.

      Wir hatten mal ein Projekt, wo die Bearbeitung dann über das Frontend passierte. Der Sinn war, dass alles vom Frontend aus geschieht und man „nicht merkt“, dass die Seite auf WordPress läuft.

      D.h. es ist sehr Projektabhängig, ob man den die Adminleiste/Dashboard ausblendet!

  • Sperber

    Ich hab jetzt diesen Code, wie auch jedes andere Codeschnipselchen und Plugin ausgetestet – aber in der 4.2.2 funktioniert nichts davon. Kann es sein, dass es in WP irgendwelche Änderungen seither gab, die hier querschiessen?

    Oder anders gefragt: kannst Du das in 4.2.2. zum laufen bekommen? Wenn ja, wäre es klasse, wenn der Code aktualisiert würde – ich dreh nämlich langsam am Rad 😉

    VG,
    Chris

    • Martin Funk

      Hallo Chris.

      Ich versuchte das eben in der 4.2.2 Version. Bei mir haut es hin.

      Aber: die Adminleiste wird bei allen Rollen außer der Admin-Rolle ausgeblendet!

      Hast du es mit einer anderen Rolle versucht?

      Lg, Martin

  • Wolfram
  • Ralf

    Hi,

    hab den code versucht jetzt geht nichts mehr mit wp 4.4 !

    Weis jemand einen Grund warum?, es wird mir der Fehler 500 ausgegeben.

    Danke

    • Martin Funk

      Hallo.
      Ich versuchte es gerade mit der Version 4.4.1. Klappte wunderbar.
      Wie immer gilt: deaktiviere alle Plugins. Dann aktivierst du eines, nach dem anderen. Vielleicht lässt sich so dein Problem einengen.
      Lg, Martin

  • Sarah

    Hallo, ich habe meine Adminleiste nach der Anleitung oben ausgeschaltet, jetzt würde ich sie gerne nochmal aktivieren (während der Bearbeitung meiner Seite)…der Code scheint aber wie verschwunden aus der fuctions.php…ist der möglicherweise überschrieben worden? hab ich ihn irgendwie/ irgendwo falsch eingesetzt? Danke für die Hilfe!
    Lg!

    • Martin Funk

      Hmmm…
      Schwer zu sagen, ohne deinen Code zu sehen.
      Mein erster Ansatz wäre, die Funktion innerhalb deiner verwendeten Themes zu suchen.
      Je nachdem, welchen Code-Editor du verwendest, gibt es normal die Möglichkeit, ganze Ordner zu durchsuchen.

  • SRo

    Hallo,
    gibt es eine Möglichkeit die Adminleiste so anzupassen, dass Nutzer sich noch abmelden und ihr Profil bearbeiten können?

    • Martin Funk

      Ich verstehe deine Frage leider nicht.
      Bitte erkläre sie anhand eines Beispiels.

      • SRo

        Wenn man die Adminleiste für Nutzer ausblendet, verlieren diese ja die Möglichkeit sich darüber auszuloggen oder ihr Profil zu bearbeiten.

        Kann man die Adminleiste also so anpassen, dass zumindest die Logout-Funktion für Nutzer angezeigt wird?

        • Martin Funk

          Ok. Jetzt verstehe ich was du meinst.
          Naja, wenn deine Nutzer schon einmal die Möglichkeit hatten sich einzuloggen, wird es schwierig das nicht mehr zu zulassen.
          Du könntest maximal die Nutzerdaten im Frontend für die Nutzer änderbar machen.

  • Tamer

    hey ich habe den tipp befolgt und jetzt ist die komplette homepage weiß und ich kann weder auf mein wordpress dashboard zugreifen noch auf die homepage selbst :-/ Hilfe

  • Tamer

    Es funktioniert garnichts mehr alles ist jetzt komplett weiß :-/ bitte um dringende Hilfe ich weiß nicht was ich tun soll.

    • Martin Funk

      Der erste Schritt ist, dass du Änderung wieder rückgängig machst.
      Wenn das nichts hilft, sieh dir mal diesen Link an:
      http://www.wpbeginner.com/wp-tutorials/how-to-fix-the-wordpress-white-screen-of-death/
      Da bei dir alles weiß zu sein scheint, tippe ich mal darauf.

      Vergiss auch nicht, immer wieder BackUps zu machen!

  • sebastian

    Hallo,
    ich habe ein großes Problem! Ich habe mir das Theme „Blackfyre – Create Your Own Gaming Community“ gegönnt. Wenn ich mich als Admin anmelde sehe ich wie gewohnt die Admin Bar was auch gewollt ist, wenn sich allerdings ein normaler User bei mir auf der Seite registriert und danach anmeldet, kann er auch diese Admin Bar sehen. Dabei will ich garnicht dass andere erst sehen können dass ich die Seite mit WordPress gebaut habe.

    Wie bekomme ich nun diese Admin Bar weg?
    Kann mir jemand sagen woran das liegen könnte?

    Ich habe schon über das Theme die Funktion eingestellt dass die Admin Bar nicht angezeigt werden soll. Jetzt sehe ich als Admin die Bar nicht aber die normalen User 🙁 hahahahaha….. total verrückt. Ich weiß echt nicht mehr weiter. Bitte um Hilfe.

    Liebe Grüße
    Sebastian

  • Dominik

    Hallo! Ich möchte keine einen internen Bereich (Intranet) für einen gemeinnützigen Verein erstellen. Ist es irgendwie möglich dass die Benutzer nicht ins Backend gelangen aber das Profil trotzdem bearbeiten können? Man sollte nicht merken dass die Seite unter WP läuft.
    Danke
    lg

    • Martin Funk

      Hmmm…
      Auf die schnelle fällt mir nur ein, dass du die Informationen ins Frontend bekommen musst.
      D.h. du musst die Informationen im Frontend ausgeben und Änderbar machen. Vor Jahren arbeitete ich an einem Projekt, wo wir das mit dem Plugin Gravity Forms lösten. Dieses Plugin (kostenpflichtig) gibt einem sehr viel Optionen, Hooks, etc. Damit waren wir sehr flexibel.
      Lg, Martin

  • Andreas

    Moin 🙂

    In welches function.php muss ich den code einbinden? In dem des themes, in das ich über den editor im backend gelange oder in das, in welches ich per tfp komme?
    Wo im function.php muss ich den code einfügen? iwie will das nicht funktionieren. *heul*

    LG

  • Martin Funk

    Hallo Andreas.
    Es sind beide Themes das gleiche. Nur erreicht du es auf zwei Wege:
    1. Editor im Backend, 2. per FTP

    Wo du es in der functions.php hingibst ist ziemlich egal. Nur nicht innerhalb einer anderen Funktion. 🙂
    Also: gib es einfach in die letzte Zeile (wenn dort ein „}“ Zeichen ist, dann davor).

  • Martin Funk

    Hallo Sebastian.
    Ist dein Problem noch aktuell?