Admin-Bereich für normale User sperren

Inhaltsverzeichnis

Nur Admins Zugriff auf Admin-Bereich erlauben

Wordpress bringt von Haus aus viele Features mit, auch eine Benutzerverwaltung und Kommentare sind bereits dabei. Damit es weniger Spam gibt und der Ton allgemein höflich bleibt, ist oft eine Registrierung notwendig, um einen Kommentar zu verfassen, aber vielleicht gibt es für selbige auch noch andere Gründe. Das Problem bei der Wordpress Registrierung ist, dass alle User anschließend Zugriff auf den Admin-Bereich haben. Dort haben normale Benutzer aber schlichtweg nichts verloren, außerdem ist ein Zugriff dort meist einfach nicht erwünscht. Doch der Admin-Bereich lässt sich mit einem einfachen Snippet auch komplett sperren. Normale User, die dann versuchen in den Admin zu gelangen, werden einfach auf die Website weitergeleitet, nur Admins bekommen Zugriff auf die WP-Admin. Sehr nützlich, vor allem um ungebetene Gäste fernzuhalten.

Folgendes in die Functions.php eures Themes kopieren:

function restrict_admin()
{
	if ( ! current_user_can( 'manage_options' ) ) {
                wp_redirect( site_url() );
                exit;
	}
}
add_action( 'admin_init', 'restrict_admin', 1 );

Wordpress Admin für normale User sperren

Das Snippet ist sehr einfach und auf die Performance drückt es demnach nicht. Es prüft nach dem Login lediglich, ob der User ein Admin ist. Ist dem so, wird dieser normal in den Admin-Bereich von Wordpress weitergeleitet. Ist dem allerdings nicht so, leitet das Snippet einfach auf die normale Website weiter. So gibt es für niemanden, außer eben dem Admin, Zugriff in die Administration. Zwar können normale Nutzer meist eh nur ihr Profil etwas verändern, doch genau das ist meistens vollkommen überflüssig, da die Daten eh nirgends genutzt oder gar gebraucht werden. Wer außerdem ein Ajax-Widget für den Login nutzt (Dieses hier ist übrigens außergewöhnlich gut gelungen, da bereits bei der Registrierung ein Passwort gewählt werden darf.), der will auch schlichtweg nicht, dass User irgendwo in hintere Bereiche des Wordpress Backends vorrücken. Ich finde das Snippet jedenfalls sehr nützlich, ich hoffe der ein oder andere von euch kann es ebenfalls gut gebrauchen.

Christian Pust
WordPress & Onlinemarketing Experte mit über 15 Jahren Erfahrung. Entwickler & CEO von Trackboxx – der Google Analytics Alternative.

3 Antworten

  1. Hi, blöderweise unterbindet das auch den Zugriff auf die admin-ajax.php – ist zumindest bei mir so und für ein Plugin benötige ich das…hast Du eine Idee dazu?

    Liebe Grüße, Andrea

  2. Hallo Christian,

    das funktioniert prima. Danke dafür. Hättest Du auch eine Idee, wie man den schwarzen Balken oben (WordPress…) ausblenden könnte?

    Gruß
    Peter

    1. Hi Pezter, qucik and dirty da ich nicht 100% weiß was du wie umsetzen möchtest:

      #wpadminbar { display:none !important;}

      Also das als CSS in den Customizer kopieren.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Das könnte dich auch interessieren

Du benötigst Unterstützung bei deinem WordPress Projekt?

Dein Ansprechpartner
Christian