Question

Pour un de mes types de postes personnalisés Je veux un utilisateur spécifique pour pouvoir éditer les messages existants créés par l'administrateur mais pas pouvoir ajouter de nouveaux messages.

Comment cela peut-il être fait?

Si je définit le rôle de l'utilisateur de ne pas être en mesure de le publier leur permet encore d'ajouter un nouveau poste et soumettre à l'examen.

Était-ce utile?

La solution

Vous devrez faire quelque chose comme ceci:

function hide_buttons() {
    global $current_screen;

    if($current_screen->id == 'edit-post' && !current_user_can('publish_posts')) {
        echo '<style>.add-new-h2{display: none;}</style>';  
    }
}
add_action('admin_head','hide_buttons');

Voir: http://erisds.co.uk/wordpress/spotlight-wordpress-admin-menu-remove-add-new-pages-or-posts-link de référence

Autres conseils

La réponse précédente ne cache que l'élément de menu avec CSS, et comme @ezejielDFM souligne, il ne sera pas empêcher les utilisateurs de en fait pouvoir ajouter les messages.

Au lieu de cela, lors de l'enregistrement de votre type de poste personnalisé, vous devez définir la valeur de create_posts à do_not_allow (ou false dans les versions de Wordpress 4.5 ci-dessous) et définir la manière cruciale map_meta_cap à true.

register_post_type( 'custom_post_type_name', array(
    'capability_type' => 'post',
        'capabilities' => array(
        'create_posts' => 'do_not_allow', // Prior to Wordpress 4.5, this was false
    ),
    'map_meta_cap' => true, //  With this set to true, users will still be able to edit & delete posts
));

Si map_meta_cap est omis, la valeur par défaut de false et même si vous avez désactivé la possibilité de Ajouter messages, vous aussi ne sera pas en mesure de modifier ou de supprimer ceux qui existent déjà soit, alors assurez-vous Assurez-vous d'inclure cette valeur.

Crédit complet va cette réponse sur débordement de la pile.

Licencié sous: CC-BY-SA avec attribution
Non affilié à wordpress.stackexchange
scroll top