Créer un rôle sur mesure sous Wordpress 4.1

S’abonner

Wordpress est un CMS simple et efficace, mais il pèche par la rigidité de ses rôles.

En effet il ne dispose que de 6 rôles (super-admin, admin, editor, autor, contributor, subscriber). Et malheureusement ces roles disposent de capacités qui ne sont pas modifiables via l'interface d'administration de Wordpress.

Vous pouvez consulter la liste de ces rôles & capacités ci-contre : http://codex.wordpress.org/fr:R%C3%B4les_et_Capacit%C3%A9s)

Or il fréquent que pour une utilisation diocésaine, il soit nécessaire de créer des rôles plus spécifiques.

Par exemple :

  •  Un responsable éditorial des pages, mais qui ne doit pas avoir accès aux articles.
  •  Et un responsable de la publication, qui en doit donc pas avoir accès aux pages.

Pour cela, il n'est pas nécessaire de passer par une extension qui peut avoir pour conséquence d'entrer en conflit avec d'autres extensions, voire avec votre thème.
En effet, Wordpress permet des modifications avancées des fichiers clés via le panneau "Apparences > Éditeur".

Ce panneau vous permet de modifier les fichiers clés de votre CMS et de votre thème. Celui qui nous intéresse particulièrement est le fichier "Fonctions du thème (functions.php).

Le principe est simple :

  1. Créer le role en lui donnant un nom unique.
  2. Lui donner le droit que les capacités voulues (ou non).

Dans l'ordre cela donne :

  • Ajouter le role :

add_role

  • Lui donner un nom de table (il n'apparaitra pas) :

('respedition_user',

  • Puis un nom officiel (il apparaitra dans la liste du panneau "Utilisateurs") :

'Responsable edition',

  • Enfin lister les capacités à donner ou a enlever.

Le principe étant de déclarer "true" (vrai) ou "false" (faux) pour chacune des capacités possibles (liste ci-lié http://codex.wordpress.org/fr:R%C3%B4les_et_Capacit%C3%A9s#Les_R.C3.B4les ):

array(

'delete_others_pages' => false,
'delete_others_posts' => true,
'delete_pages' => false,
'upload_files' => true,
));

En condensé cela donne :

add_role('respedition_user', 'Responsable edition', array(

'delete_others_pages' => false,
'delete_others_posts' => true,
'delete_pages' => false,
'delete_posts' => true,

));

Vous pouvez supprimer un role en utilisant :

remove_role( 'special_contributor' );

 

Avertissements :

  1. Veillez à faire une sauvegarde de votre base de donnée et de votre site avant toute manipulation sur les fichiers cités.
  2. Pour nommer vos rôles, n'utilisez que des minuscules sans accents. L'utilisation de ces derniers peut avoir des conséquences.

Sources :
http://codex.wordpress.org/fr:R%C3%B4les_et_Capacit%C3%A9s
http://www.naxialis.com/creer-un-nouveau-role-pour-vos-utilisateurs/
http://wp-boilerplates.mathieuleroi.com/159/gestion-des-roles-et-capabilities-wordpress/

 

Auteur :

Jean Boyancé
Webmaster diocèse de Nièvre

 

Si vous aussi vous souhaitez nous envoyer des articles ou astuces, merci de nous contacter par le formulaire "envoyer une demande" en précisant dans l'objet "ARTICLE".

Vous avez d’autres questions ? Envoyer une demande

Commentaires

Réalisé par Zendesk