Cum să obții toate capabilitățile unui rol de utilizator existent

21 mai 2016, 19:10:10
Vizualizări: 20.2K
Voturi: 5

Cum pot obține TOATE capabilitățile unui rol de utilizator existent (de exemplu, Autor)? Îl voi folosi pentru a duplica rapid un rol de utilizator existent, apoi pentru a crea un nou rol și a atribui sau elimina capabilități pentru un nou rol personalizat.

1
Comentarii

Ceva de genul get_role( $role )->capabilities de exemplu get_role( 'author' )->capabilities ? ..

Ismail Ismail
21 mai 2016 19:50:55
Toate răspunsurile la întrebare 1
2

Sugerez să nu vă amestecați în rolurile și capabilitățile existente în starea lor implicită, acest lucru vă poate evita probleme în viitor când veți avea mai multe roluri și capabilități personalizate.

Pentru a răspunde la întrebarea ta, voi da un exemplu: Am nevoie de un nou rol/grup de utilizatori care are aproape aceleași drepturi ca Administratorul, dar nu are capabilitatea de a edita plugin-uri și tema. Pentru a face asta:

  1. Să presupunem că doriți să copiați capabilitățile existente ale Administratorului, faceți asta folosind:

    $admin_role_set = get_role( 'administrator' )->capabilities;
    
  2. Puteți crea un nou rol de utilizator folosind add_role, consultați manualul pentru mai multe detalii. Apoi putem folosi lista de capabilități pe care o avem de la pasul #1 folosind:

    $role = 'content_admin';
    $display_name = 'Content Admin';
    add_role( $role, $display_name, $admin_role_set );
    
  3. Prin verificarea listei Roluri și Capabilități din manual, vom avea nevoie să eliminăm capabilitățile edit_plugins și edit_themes, putem realiza acest lucru folosind remove_cap():

    remove_cap( 'content_admin', 'edit_plugins' );
    remove_cap( 'content_admin', 'edit_themes' );
    
22 mai 2016 09:19:41
Comentarii

În pasul 3 pe care îl descrii, rolul furnizat metodei remove_cap nu ar trebui să fie 'content_admin' în loc de 'editor' dacă continui exemplul de eliminare a capacității de a edita plugin-uri și tema pentru noul rol personalizat creat?

Kory Kory
7 mai 2020 21:21:04

Editat conform comentariului lui @Kory

mayersdesign mayersdesign
19 aug. 2021 14:16:41