Ich schaute auf die Benutzertabelle und bemerkte, dass ein Superadministrator (Zugriff auf das Netzwerkadministrationsfenster) und ein Administrator auf eine Netzwerksite denselben wp_capabilities
haben, der a:1:{s:13:"administrator";b:1;}
ist, und auch der wp_user_level
ist 10
für beide.
Also habe ich mich gefragt was ist der Datenbankwert, der zwischen einem Superadministrator und einem Administrator unterscheidet? Ich sehe keine Usermeta mehr, die sich auf die Ebene der Netzwerkadministratoren bezieht.
Was ist der richtige Weg, um einem Administrator Super-Admin-Funktionen zuzuweisen:
Site-Administratoren werden in einer Site-Option als Array von Benutzernamen gespeichert.
Mit SQL in MySQLWorkbench können Sie beispielsweise eine Abfrage wie die folgende durchführen:
SELECT * FROM wp_sitemeta where meta_key='site_admins';
So erhalten Sie ein serialisiertes PHP -Array zurück. Wenn Sie diesen Wert durch Hinzufügen Ihres Benutzernamens und Ihrer Benutzer-ID ändern, werden Sie Site-Administrator.
Wenn Sie nur sehen möchten, wer ein Site-Administrator ist, haben Sie folgende Funktionen:
get_site_admins();
is_super_admin();
Befindet sich der Benutzer nicht an mehreren Standorten, sondern an einer einzelnen Site, wird er als Superadministrator betrachtet.
Ich überprüfte die MultiSite-Datenbank und fand folgende zwei Einträge in der Tabelle wp_sitemeta, die zwischen einem Super-Administrator und einem Administrator unterscheiden.
admin_user_id und site_admins