Régler les droits dans la matrice
Chaque case de la matrice est une capability de WordPress. Le réglage passe par WP_Role::add_cap() et remove_cap(), donc directement dans wp_user_roles. Ce qui figure ici s’applique aussitôt et partout — y compris au code qui ignore tout de ce plugin : tout plugin qui interroge current_user_can() obtient la même réponse.
Modifier les droits d’un rôle
- Dans la barre latérale gauche, sous « Rôles et droits », choisis « Matrice des droits ».
- Choisis le rôle en haut. Les cases en dessous appartiennent exactement à ce rôle.
- Coche et décoche les cases. Les droits venus des plugins et des thèmes figurent dans un groupe distinct, « Depuis les plugins et thèmes ».
- Enregistre avec le bouton à la fin — avant cela, rien n’est écrit.
« Sensible » veut dire : ouvre plus que ne le dit le nom
Certains droits sont signalés comme sensibles. edit_plugins, edit_themes et edit_files, par exemple, sont l’accès au serveur, pas à la rédaction : qui les détient peut écrire du code dans le site via l’éditeur de fichiers. Kakapo Security peut retirer précisément ces droits ; ici, tu vois quel rôle les possède.
Séparer les types de contenu personnalisés
Par défaut, les types de contenu personnalisés partagent leurs droits avec les articles. Qui peut modifier « Événements » peut forcément modifier aussi les articles. Sous « Types de contenu », on peut séparer les deux : le type reçoit ses propres capabilities, et la matrice les affiche ensuite dans un groupe distinct, « Types de contenu personnalisés ».
Pourquoi cela doit se produire tôt
WordPress fige l’association des droits d’un type de contenu au moment de son enregistrement. Le faire ensuite serait trop tard, d’où l’accrochage au filtre register_post_type_args.
register_post_type_args