WordPress : Comment puis-je autoriser certains utilisateurs à créer un certain type de publication ?
Voici un bref résumé de la configuration de mon site :
J’ai un site Intranet relativement simple. En ce moment, j’utilise les messages comme un moyen de fournir des nouvelles aux utilisateurs. J’utilise aussi des pages. Je veux seulement que certains utilisateurs puissent faire ces choses (disons « Éditeurs »).
Ce que je voudrais faire, c’est mettre en place une section communautaire du site où tous les utilisateurs peuvent publier un message (pour vendre des choses, etc.). Je me demande quelle est la meilleure façon de procéder? Je pourrais utiliser une catégorie pour faciliter l’affichage de ces types de messages. Mais, je ne veux pas que les utilisateurs puissent faire n’importe quel type de publication. Je veux seulement qu’ils puissent publier sur la communauté. Si quelqu’un publie des nouvelles, je veux qu’il ait un niveau de sécurité plus élevé.
Si j’y pense mal, j’aimerais entendre d’autres idées !
Modifier :
Voici mon code postal personnalisé actuel :
function createCommunityPostType() {
$args = array(
'public' => true,
'label' => 'Community'
);
register_post_type('community', $args );
}
add_action('init', 'createCommunityPostType');
Solution n°1 trouvée
Ce qui suit attribuera des exigences de capacité à votre CPT. Ainsi, les utilisateurs auront besoin des capacités edit_community, delete_community, etc. pour effectuer ces actions.
function createCommunityPostType() {
$args = array(
'public' => true,
'label' => 'Community'
'capability_type' => 'community',
'map_meta_cap' => true
);
register_post_type('community', $args );
}
add_action('init', 'createCommunityPostType');
Voir les parties sur les capacités dans le codex.
Vous devez également attribuer ces plafonds à vos utilisateurs. Vous pouvez utiliser un plugin pour cela (voir le plugin des membres ), ou vous pouvez le faire vous-même :
function my_after_setup_theme() {
$role = get_role( 'subscriber' );
$caps_set = get_option( 'my_caps_set' );
if ( !$caps_set ) {
$role->add_cap( 'edit_community' );
$role->add_cap( 'read_community' );
$role->add_cap( 'delete_community' );
// ... and so forth (see codex for caps list)
update_option( 'my_caps_set', true );
}
}
add_action( 'after_setup_theme', 'my_after_setup_theme' );
Nous avons défini un indicateur de paramètres pour éviter de réinitialiser les majuscules plus d’une fois.
le code ci-dessus suppose que vous souhaitez attribuer ces plafonds aux abonnés, mais vous pouvez le modifier pour n’importe quel rôle ou créer votre propre rôle.
0 commentaire