In WordPress è possibile assegnare agli utenti diversi ruoli e permessi, dando così all’amministratore del sito la possibilità di decidere cosa gli utenti possono e non possono fare nel blog. Spesso l’utilizzo dei ruoli in WordPress può creare confusione, pertanto con questo articolo cerchèrò di fare un po’ di chiarezza e anche di spiegare come potenziarne l’utilizzo per mezzo di plugins o altre tecniche.
I ruoli in WordPress rappresentano dei gruppi a cui possono appartenere uno o più utenti. Una delle cose più importanti è che i ruoli non sono gerarchici, il che significa che sono specificatamente pensati per le funzioni che devono svolgere all’interno di WordPress. Al contrario, i permessi specificano le azioni che i singoli ruoli possono svolgere all’interno di WordPress.
WordPress di default presenta sei ruoli, ognuno dei quali ha dei permessi specifici quali: pubblicare posts, moderare commenti, modificare gli utenti e tanto altro. Ovviamente per ogni singolo ruolo vengono asseganti dei permessi di default che tuttavia è possibile modificare per mezzo di opportuni plugins o di funzioni da aggiungere manualmente, parleremo di queste tecniche in seguito.
Sommario dei ruoli in WordPress
- Super Amministratore – ha accesso ad un network di amminstrazione ed è un ruolo importante nella gestione di un multisite qualora stiate utilizzando WordPress in modalità multisit0.
- Amministratore – ha accesso a tutte le funzioni del pannello di amministrazione.
- Editore – ha il permesso di pubblicare e amministrare i posts compresi quelli di altri utenti.
- Autore – ha il permesso di pubblicare e amministrare solo i propri posts.
- Collaboratore – ha il permesso di scrivere e amministrare i propri posts ma non può pubblicarli.
- Subscriber – ha il solo permesso di amministrare il proprio profilo.
Per avere una visione più completa dei ruoli e dei permessi a loro assegnati potete visitare il sito uffiiciale, vedi scheda ruoli e permessi.
Perchè organizzare gli utenti per ruoli?
I ruoli e i permessi estendono le funzioni e le possibilità di WordPres rendendolo un ottimo sistema per la gestione e l’amministrazione di siti complessi. Ad esempio, alcuni amministratori di blog potrebbero avere la necessità di gestire siti di informazione e un team di giornalisti, numerosi siti di quotidiani sono realizzati in WordPress. In questo caso è necessario dare agli autori la possibilità di pubblicare velocemente i propri articoli o di spedirli in tempo reale alla redazione per una eventuale revisione. Tutto questo è facilmente gestibile con l’utilizzo dei ruoli e permessi messi a disposizione da WordPress.
Aggiungere ruoli personalizzati
A volte i ruoli di default di WordPress non bastano oppure non sono compatibili con le funzionalità richieste per il nostro blog. Ma entriamo più nel dettaglio su come possiamo personalizzare i ruoli esistenti aggiungendo dei nuovi permessi, o rimuovendo quelli assegnati di default. In particolare il codice seguente permette di creare un nuovo ruolo e assegnargli dei permessi specifici.
In questo modo abbiamo creato un nuovo ruolo, chiamato “Super Collaboratore” e gli abbiamo dato i permessi ‘edit_posts’ per modificare gli articoli e ‘read’ per la lettura degli articoli al contrario non è permesso di eliminare gli articoli.
Questo codice può essere utilizzato in un plugin oppure all’interno del file functions.php del vostro tema. Se volete creare un plugin potete farlo utilizzando Pluginception, ottimo per la creazione di funzioni personalizzate in WordPress sotto forma di plugins. Per una lista completa di tutti i permessi andate qui.
Aggiungere permessi personalizzati
Come abbiamo detto in precedenza per ogni singolo ruolo di default sono assegnati dei permessi specifici, ma allora è possibile aggiungere o rimuovere dei permessi per ogni specifico ruolo già essistente senza doverne crearo uno nuovo? La risposta è SI ed è possibile grazie alle funzioni add_cap() e remove_cap(). Di seguito un esempio:
function add_capability() { // gets the author role $role = get_role( 'author' ); // This only works, because it accesses the class instance. // Would allow the author to edit others' posts for current theme only $role->add_cap( 'edit_others_posts' ); } add_action( 'admin_init', 'add_capability');
In questo modo possiamo dare al ruolo “autore” la possibilità di modificare gli articoli di altri autori, cosa che di default è permessa solo al ruolo “editore”.
Se invece volete aggiungere o modificare dei permessi per un singolo untente, allora dovrete utilizzare il seguente codice:
if ( current_user_can( 'moderate_comments' ) ) { echo 'The current user can moderate comments'; }
Plugin per ammininistrare ruoli e permessi
Members è un plugin gratuito, sviluppato da Justin Tadlock. Permette di estendere le funzioni di controllo modificando i ruoli e i permessi di gestione dei contenuti, rendendo WordPress più simile ad un CMS.
User Role Editor come members permette di modificare con pochi clicks i permessi dei ruoli di default di WordPress (eccetto per l’amministratore).
Io personalmente preferisco di gran lunga il metodo manuale, anche se i plugin possono sempre essere di aiuto ai meno esperti. Voi come gestite i ruoli e i permessi di WordPress? Spero questo articolo sia stato d’aiuto.
Elena dice
Non sono ancora abbastanza esperta da osare il metodo manuale, devo scegliere tra members e user role editor e non mi è chiara la differenza. Al momento sto provando members e mi sembra funzionare.
Karibusana dice
Ciao Elena, sono entrambi dei alidi plugin, ti consiglio di provarli entrambi magari un sito di prova in locale e vedere quale dei due si adatta meglio alle tue esigenze. In bocca al lupo e grazie per aver letto il mio articolo, spero sia stato d’aiuto 😉
Andrea Alessandrini dice
Mi risulta strano che il codice PHP per agiungere un nuovo ruolo vengano scritte nel file
functions.php del tema, ma per quanto ne so (poco) potrebbe anche essere così 😀
Grazie dell’articolo.
Andrea ‘ndrini
Karibusana dice
Ciao, magari potresti ripassare il significato del file functions.php qui: http://codex.wordpress.org/Functions_File_Explained