WP Multisite mit Domänenzuordnung: Verhindern des Benutzerzugriffs auf das Dashboard

Ich habe ein Thema, das von einem Unterordner Multisite und einem Domäne-Mapped Multi Site verwandt wird.

Z.B

mywpsite.com/site1

mywpsite.com/site2

www.site2.com (führt zu den oben genannten)

Ich habe dieses Code-Schnipsel in meiner functions.php-Datei

function my_wp_admin_ban(){ if( !current_user_can('activate_plugins') ){ wp_redirect( get_bloginfo('url') ); exit; } } add_action('admin_init','my_wp_admin_ban'); 

Dies verhindert erfolgreich, dass Mitglieder von site1 auf den Admin-Bereich (wp-admin) zugreifen.

Dieser Code scheint jedoch nicht für site2 zu funktionieren.

Stattdessen wird diesen Benutzern angezeigt, dass Sie nicht über ausreichende Berechtigungen zum Zugreifen auf diese Seite verfügen. Fehlermeldung.

Ich habe alles versucht, was ich mir vorstellen kann, einschließlich verschiedener Möglichkeiten, dasselbe zu tun. Wie kann ich Nicht-Admins auf die Startseite redirect, wenn ich mysite.com/wp-admin/ aufrufen möchte? und Wie entferne ich Dashboard-Zugriff von bestimmten Benutzerrollen?

Was kann ich tun, um sicherzustellen, dass alle Benutzer (Nicht-Administratoren) der Multisite vom Dashboard-Bereich weggeleitet werden?

Solutions Collecting From Web of "WP Multisite mit Domänenzuordnung: Verhindern des Benutzerzugriffs auf das Dashboard"

Die Datei functions.php ist nicht der Ort, um diese Art von Code auszuführen. Wo finde ich die Codeschnipsel, die ich hier oder irgendwo anders im Internet gefunden habe?

Sie können ein Must-Use-Plugin verwenden oder ein einfaches und Netzwerk aktivieren .

Es würde so gehen:

 < ?php /* Plugin Name: Only admins on dashboard */ add_action( 'admin_init', 'admin_ban_wpse_105863' ); function admin_ban_wpse_105863() { if( !current_user_can( 'activate_plugins' ) ){ wp_redirect( site_url() ); exit; } } 

Die Dokumentation für die function get_bloginfo hat für viele Fälle Alternativen empfohlen. Die function site_url sorgt dafür, dass die aktuelle Blog-URL verwendet wird.


[aktualisieren]
Der einzige Ort, an dem die Fehlermeldung ...permissions to access... erscheint, ist in der Datei wp-admin/includes/menu.php . Und es hat einen nützlichen Haken:

 add_action( 'admin_page_access_denied', 'denied_ban_wpse_105863' ); function denied_ban_wpse_105863() { wp_redirect( site_url() ); exit; }