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.


0 0 0


Diskussion

avatar placeholder
19. Jan 2014 von Steve

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

avatar placeholder
21. Dez 2015 von Joshua

Hallo, vielen Dank. Ich bin mir sicher, dass mir das weiterhelfen wird. In welche php Datei muss das hineingeschrieben werden?

Viele Grüße
Joshua

avatar placeholder
5. Jan 2016 von Daniela

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

avatar placeholder
12. Jan 2016 von Christian

Funktioniert auch 2016 mit WordPress 4.4.1 noch einwandfrei; vielen Dank!

Grüße
Christian

avatar placeholder
3. Feb 2016 von Tobias Redmann

Einfach in die functions.php Eures Themes.

Mitdiskutieren

*