Diferența dintre Admin și Super Admin în Baza de Date
Mă uitam la tabela de utilizatori și am observat că pentru un super admin (care are acces la panoul de administrare al rețelei) și un admin al unui site din rețea au același wp_capabilities
care este a:1:{s:13:"administrator";b:1;}
și de asemenea wp_user_level
este 10
pentru amândoi.
Așadar, mă întrebam care este valoarea din baza de date care diferențiază un super admin de un admin? Nu văd alte metadate ale utilizatorului care să se refere la nivelul de administrator de rețea.
Care este metoda corectă de a atribui capabilități de super admin unui administrator prin:
- Editare directă în baza de date.
- Prin cod.
Un administrator este un utilizator pe site-ul curent cu rolul de administrator.
Super administratorii/Administratorii de site sunt, însă, stocați într-o opțiune de site ca un array de nume de utilizatori.
De exemplu, folosind SQL în MySQLWorkbench puteți face o interogare precum aceasta:
SELECT * FROM wp_sitemeta where meta_key='site_admins';
Pentru a obține înapoi un array PHP serializat. Modificând această valoare prin adăugarea numelui și ID-ului dvs. de utilizator vă va face administrator de site.
Dacă doar doriți să vedeți cine este administrator de site, aveți aceste funcții:
get_site_admins();
is_super_admin();
Dacă sunteți pe un singur site și nu pe un multisite, orice utilizator cu capacitatea delete_users
va fi considerat super administrator.
Rețineți că un utilizator care este administrator/super-administrator nu trebuie să aibă un rol pe un site pentru a efectua acțiuni de administrator. Acest lucru poate duce la situații ciudate, deoarece un super administrator poate scrie un post pe un blog de care nu face parte tehnic, ceea ce poate fi derutant atunci când acesta nu apare în lista de utilizatori a acelui blog, deoarece nu are un rol pe acel blog.
