Come ottenere tutte le capabilities di un ruolo utente esistente

21 mag 2016, 19:10:10
Visualizzazioni: 20.2K
Voti: 5

Come posso ottenere TUTTE le capabilities di un ruolo utente esistente (es. Autore)? Le userò per duplicare rapidamente un ruolo utente esistente, quindi creare un nuovo ruolo e assegnare o rimuovere capabilities al nuovo ruolo personalizzato.

1
Commenti

Qualcosa come get_role( $role )->capabilities ad esempio get_role( 'author' )->capabilities ? ..

Ismail Ismail
21 mag 2016 19:50:55
Tutte le risposte alla domanda 1
2

Suggerisco di non modificare i ruoli e le capacità predefinite, potrebbe evitarti problemi in futuro quando avrai una serie di ruoli e capacità personalizzati.

Per rispondere alla tua domanda, farò un esempio: ho bisogno di un nuovo ruolo/gruppo di utenti che abbia quasi le stesse capacità di un Amministratore, ma senza la possibilità di modificare i plugin e il tema. Per farlo:

  1. Supponiamo che tu voglia copiare le capacità esistenti dell'Amministratore, puoi farlo con:

    $admin_role_set = get_role( 'administrator' )->capabilities;
    
  2. Puoi creare un nuovo ruolo utente utilizzando add_role, consulta il manuale per maggiori dettagli. Possiamo quindi utilizzare l'elenco delle capacità ottenuto dal punto #1 con:

    $role = 'content_admin';
    $display_name = 'Content Admin';
    add_role( $role, $display_name, $admin_role_set );
    
  3. Controllando l'elenco delle Ruoli e Capacità dal manuale, dovremo rimuovere le capacità edit_plugins e edit_themes, possiamo farlo utilizzando remove_cap():

    remove_cap( 'content_admin', 'edit_plugins' );
    remove_cap( 'content_admin', 'edit_themes' );
    
22 mag 2016 09:19:41
Commenti

Nel 3° passo che descrivi, il ruolo fornito al metodo remove_cap non dovrebbe essere 'content_admin' invece di 'editor' se stai continuando l'esempio di rimozione della capacità di modificare i plugin e il tema per il nuovo ruolo personalizzato creato?

Kory Kory
7 mag 2020 21:21:04

Modificato come da commento di @Kory

mayersdesign mayersdesign
19 ago 2021 14:16:41