J'essaie de créer un rôle qui peut créer et soumettre à un CPT uniquement. Lorsque je supprime edit_post de ce rôle, cela annule également la possibilité de créer et de modifier les CPT assignés et enregistrés. J'ai également enregistré et attribué la fonction edit_CPTs au rôle. Donc, fondamentalement, j'ai ceci:
edit_cpt
edit_cpts
et j'ai emporté
edit_posts
Mais une fois que j'ai supprimé edit_posts
, le rôle ne peut même pas voir les CPT dans l'interface du tableau de bord. Toute aide serait grandement appréciée.
Vous devez enregistrer le CPT avec votre fonctionnalité personnalisée, puis attribuer cette limite spécifique à l'utilisateur.
Lorsque vous transmettez les arguments à register_post_type
, définissez capability_type
sur votre nouvelle fonctionnalité. Le contrôle se transforme donc en 'edit_cpts'
au lieu de 'edit_post'
.
En définissant 'capability_type' => [ 'cpt', 'cpts' ]
, "cpt" mappera sur "post" pour les vérifications de capabilité standard. Ainsi, là où vous feriez habituellement une vérification pour "edit_post", cochez maintenant "edit_cpt".
Lorsque vous supprimez complètement la limite primitive 'edit_posts'
des utilisateurs/rôles comme vous l'avez fait, vous devez ajouter votre nouveau numéro avec WP_Role::add_cap()
et le rechercher avec current_user_can( 'edit_cpts' )
.