web-dev-qa-db-fra.com

Rendre certaines pages inédites par les éditeurs?

Ma page Wordpress a quelques éditeurs. Ils ont besoin de cette permission car ils doivent être autorisés à modifier les messages/pages des autres. Cependant il y a deux pages que je ne veux que moi, l'administrateur peut éditer.

Comment puis-je accomplir cela?

2
Hedge

Vous pouvez essayer le filtre map_meta_cap:

/**
 * Uneditable posts/pages for editors
 */
add_filter( 'map_meta_cap', function ( $caps, $cap, $user_id, $args )  
{
    // Edit to your needs:
    $post_ids = [123, 234, 345, 456]; // Uneditable posts   
    $role     = 'editor';             // Uneditable by this user role

    // Make given posts uneditable for the above user role:
    if (
            'edit_post' === $cap
         && isset( $args[0] )
         && in_array( $args[0], $post_ids ) 
         && current_user_can( $role )
    )
        $caps[] = 'do_not_allow';

    return $caps;

}, 10, 4 );

rendre certaines pages/publications non modifiables par les éditeurs.

3
birgire