WordPress: Capacités pour les types de messages personnalisés
Je suis en train d'écrire un plugin qui crée un custom post_type. J'aimerais aussi le plugin pour créer un rôle qui ne peut ajouter/modifier/supprimer le nouveau post_type. J'ai essayé plusieurs plugins (Role Scoper, Advanced Access manager) et ils me permettent de redéfinir ou de créer de nouveaux rôles, mais ils ne me permet pas d'attribuer des fonctions spécifiques à la nouvelle post_type. Par exemple, je veux permettre à la possibilité d'ajouter/éditer mon nouveau post_type mais PAS normal posts/pages.
De ce que j'ai lu, je peux ajouter de nouveaux rôles avec le add_role() fonction. L'un des paramètres de cette fonction est un tableau de "capacités" qui semblent être définies ici. Je pense que ce dont j'ai besoin est de pouvoir ajouter mes compétences qui sont spécifiques à MON post_type. Est-ce possible?
source d'informationauteur emersonthis | 2011-11-19
Vous devez vous connecter pour publier un commentaire.
Capacités pour les Types de Poste Personnalisés
La fonction
register_post_type()
prend un$capabilities
tableau comme l'un de ses (facultatif) arguments.Il pourrait ressembler à de la sorte:
où "yp" signifie "votre type de poste".
Par la suite, vous pouvez ajouter un nouveau rôle pour votre WordPress qui a ces capacités exactes (et éventuellement un peu plus de la norme WordPress capacités):
Ce dernier peut être fait en utilisant des plugins si, découvrez la Les membres de l' plugin par Justin Tadlock, par exemple.
Approfondie Exemple
Pour vous donner un exemple plus concret:
De nos jours (WP 3.5+), il est beaucoup plus facile. Il suffit de régler le
map_meta_cap
argumentTRUE
et choisir unstring
(généralement le type de poste nom) pour lacapability_type
argument lors de l'enregistrement du type de poste.Un simple
var_dump( $GLOBALS['wp_post_types']['new_custom_post_type'] ) );
vais vous montrer quelque chose comme ce qui suit.La plus prévu de la matrice de partie sont les sept autres primitive capacités qui ne sont pas vérifiées par cœur, mais cartographiés par
map_meta_caps()
pendant le post type d'enregistrement.