Keinen Zugriff auf das WordPress-Backend für Subscriber (Abonnenten)
Standardmäßig können eingeloggte Subscriber auf das WordPress-Backend zugreifen. Der folgende Artikel erläutert, wie man mit ein paar Zeilen PHP diese beim Einloggen auf die Startseite weiterleitet.
Für eines meiner Projekte arbeiten für mit einem Bereich für Subscriber. Da diese allerdings auch Zugriff auf das Backend haben, um etwa dort die Profildaten anzupassen, musste ich mir etwas einfallen lassen.
Am einfachsten ist das mit einer Action zu erledigen. Jedes mal wenn das Backend von WordPress aufgerufen wird, dann wird die ‘admin_init’ Action ausgeführt. Das kann man sich einfach zu Nutze machen und eben allen außer Subscribern Zugriff darauf geben.
function redirect_subscribers() { if (current_user_can('subscriber') && $_SERVER['PHP_SELF'] != '/wp-admin/admin-ajax.php') { wp_redirect(site_url()); exit(); } } add_action('admin_init', 'redirect_subscribers');
In der Function wird einfach abgefragt, ob der eingeloggte Nutzer ein Subscriber ist, wenn ja, wird er auf die Startseite des Blogs weitergeleitet. Damit können Subscriber nicht auf das Backend zugreifen.
Diskussion
Hallo, vielen Dank. Ich bin mir sicher, dass mir das weiterhelfen wird. In welche php Datei muss das hineingeschrieben werden?
Viele Grüße
Joshua
Hallo,
wo genau füge ich diesen Codeschnippsel ein?
Es hatten sich bei mir ein paar Leute mit Yahoo-Mail als Abonnenten eingetragen. Und ich hab mich gefragt wie die das gemacht haben??? Wie kann das sein, ich habe keine Meta-Daten zum An oder Abmelden.
LG
Daniela
Funktioniert auch 2016 mit WordPress 4.4.1 noch einwandfrei; vielen Dank!
Grüße
Christian
Einfach in die functions.php Eures Themes.
Hey super vielen Dank für das Bereitstellen des Funktionen-Schnipsels. Konnte ich auf einer meiner neuen Seiten gleich zum Einsatz bringen.
Grüße aus Mannheim,
Steve