Ich habe eine Multisite-Installation, auf der WP 3.5 ausgeführt wird. Meine Hauptseite und ein paar andere Blogs im Netzwerk funktionieren einwandfrei. Wenn ich jedoch einen neuen Benutzer und eine neue Site registriere, erhält dieser Benutzer die Meldung "Sie haben nicht genügend Berechtigungen, um auf diese Seite zuzugreifen." Fehler, wenn sie versuchen, den Admin-Bereich der Website zu besuchen. Das Frontend der Site funktioniert ordnungsgemäß.
Wenn ich den Benutzer in der Netzwerkadministrationsoberfläche betrachte, wird angezeigt, dass er ein Administrator dieser Site ist. Wenn ich der Site den Netzwerkadministrator hinzufüge, kann ich den Administrationsbereich anzeigen.
Ich habe versucht, alle Plugins zu deaktivieren und zu entfernen, das Twenty Twelve-Thema zu aktivieren und den WP -Kern neu zu installieren. Keine dieser Arbeiten. Wie kann ich das beheben?
Ich habe einige Stunden meines Samstags damit verbracht, nach diesem Fehler zu suchen. Ich konnte nirgendwo im Internet eine Anleitung finden, die meine mögliche Lösung beschrieb. Hier ist meine Lösung.
Im WP -Kern "Sie haben nicht genügend Berechtigungen, um auf diese Seite zuzugreifen." Fehler wird am Ende von /wp-admin/includes/menu.php
generiert. Eine grep
meiner Plugin-Verzeichnisse hat auch gezeigt, dass mehrere Plugins ebenfalls diesen Fehler erzeugen können.
Erstellen Sie eine Sicherungskopie von menu.php
und ersetzen Sie den Code im Block if
in den Zeilen 224-227 (ab Version 3.5) durch den folgenden Code:
if ( !user_can_access_admin_page() ) {
$a = array(
'Pages No Access' => $_wp_menu_nopriv,
'User Info' => $current_user,
'Roles' => $wp_roles->get_names(),
);
$s = sprintf("\n<br /><pre>%s</pre>", print_r($a, true));
do_action('admin_page_access_denied');
wp_die( __('You do not have sufficient permissions to access this page.'.$s) );
}
Lassen Sie diesen Code nur dann auf Ihrer Website, wenn Sie aktiv debuggen! Ersetzen Sie dies durch den Sicherungscode menu.php
, wenn Sie für eine Weile zurücktreten müssen.
Versuchen Sie erneut, auf die Administratorseite zuzugreifen. Diese Fehlerseite erklärt Ihnen einige Dinge:
Pages No Access
-Array, das auf 1
festgelegt ist, kann der Benutzer zugreifen. In meinem Fall wurden alle Seiten auf 1
gesetzt.User Info
, ob der Benutzer die richtigen Rollen und Funktionen hat. In meinem Fall hatte der Benutzer die Rolle 10
und die Fähigkeiten, die er als Administrator haben sollte.Roles
sehen Sie eine Liste der definierten Rollen für die Site. In meinem Fall hatte ich keine definierten Rollen. Hier war mein Problem.In meinem Fall konnte ich meine Datenbank in phpMyAdmin durchsuchen und in der Tabelle [WPDB_PREFIX]_[SITENO]_user_roles
nach dem Eintrag [WPDB_PREFIX]_[SITENO]_options
suchen. Ich habe meinen WPDB_PREFIX
geändert, aber einige Plugins haben eine benutzerdefinierte Benutzerrolle erstellt und diese mit dem Standardpräfix wp_
geschrieben. Ich konnte den Eintrag von einer Arbeitsstelle in die Nichtarbeitsstelle kopieren. Sobald ich das tat, konnte der Administrator sofort auf die Seite zugreifen.
Meine Installation war noch komplizierter, weil ich das neue Blog-Vorlagen Plugin verwendete und die Datenbank meiner Vorlagensite auf dieselbe Weise beschädigt war.
Ich hoffe das hilft.
Bei der Migration von einer Installation mit mehreren Standorten lag das Problem daran, dass die Namen der Rollen auf Tabellennamen basieren. Also habe ich mein Problem gelöst, als ich die Option wp_7_user_roles in wp_user_roles umbenannt habe.
Ich hatte auch Probleme damit.
Was ich wollte, war, einem Benutzer Admin zu geben, aber bestimmte Menüs aus der Seitenleiste des Back-End-Administrators zu entfernen.
Ich habe AAM entfernt, weil es Berechtigungsprobleme gab, und stattdessen Menu Editor Pro verwendet. Alles funktioniert einwandfrei.
Natürlich ist dies nicht der sicherste Weg, es erlaubt trotzdem den Zugriff auf die versteckten Admin-Seiten, die ich manuell in die URLs eingetippt habe, aber mein Client würde sowieso nicht wissen, wie er dahin kommt, damit dies funktioniert.
Nachdem ich ein paar Lösungen einschließlich Fähigkeiten durchgearbeitet hatte, schien nichts mehr zu funktionieren. Schließlich überprüfte ich die Größe von live wp_usermeta gegenüber localhost wp_usermeta und stellte fest, dass der Upload abgehackt wurde und einige Werte fehlen. Ich habe den Tisch geleert und die ganze Usermeta neu hochgeladen. Wordpress funktionierte sofort nach dem Upload. - Hoffe, das spart jemand Zeit.