Uno dei limiti di Wordpress sta nella gestione dei ruoli da assegnare agli utenti. Ne presenta 5 di predefiniti e a volte questi non bastano:
- Subscriber
- Contributor
- Author
- Editor
- Administrator
Esistono diversi plugin che permettono di aggiungere queste funzionalità, ma spesso la via migliore è intervenire direttamente e in maniera mirata senza complicarsi la vita, con nuovo codice, nuovi plugin da aggiornare e problemini vari di compatibilità.
Su tutti mi è capitato il caso in cui volevo dare ad un utente il ruolo di CONTRIBUTOR, cioè dargli la possibilità di scrivere articoli, e di inviarli per revisione invece di pubblicarli direttamente. Ma a quel livello l’utente non può caricare files, quindi non poteva aggiungere immagini al testo. Dovevo intervenire manualmente caricando il file al suo posto. Bisognava abilitare anche gli utenti contributor a caricare files.
Ecco la soluzione. Possiamo intervenire direttamente nel codice per modificare i ruoli esistenti o crearne di nuovi. Per oggi vediamo la modifica. Si interviene sempre nel file functions.php presente nella cartella del template che utilizziamo, in modo tale da non toccare il core e all’aggiornamento del CMS le modifiche verranno mantenute.
Aprire il file functions.php del template in uso e aggiungere le righe seguenti:
<?php
function add_role_caps() {
global $wp_roles;
$role = get_role(‘contributor’);
$role->add_cap(‘upload_files’);
};
add_action (‘admin_head’,'add_role_caps’);
?>
Allo stesso modo possiamo intervenire per aggiungere altri permessi, anche ad altri ruoli, scegliendo fra le capabilities di Wordpress.






