web-dev-qa-db-fra.com

Empêcher le rôle d’auteur de modifier toutes les publications dans le type de publication personnalisé?

Je pensais que le rôle Auteur était uniquement autorisé à modifier les messages créés par cet auteur. Cela fonctionne dans Articles et Pages, mais j'ai créé un type d'article personnalisé et l'auteur peut modifier TOUS les articles de ce type d'article. Devez-vous faire quelque chose de spécial pour les types de publication personnalisés pour que le rôle d’auteur se comporte normalement?

J'ai essayé d'utiliser ce code, que j'ai trouvé sur une autre question, mais cela ne me l'a pas résolu:

function to_parse_query_useronly( $wp_query ) {
    if ( strpos( $_SERVER[ 'REQUEST_URI' ], '/wp-admin/edit.php' ) !== false ) {
        if ( !current_user_can( 'publish_posts' ) ) {
            global $current_user;
            $wp_query->set( 'author', $current_user->id );
        }
    }
}
add_filter('parse_query', 'to_parse_query_useronly' );

Je vous remercie!

2
LBF

Vous devez déclarer vos capacités souhaitées lorsque vous enregistrez le type de publication.

L'article de Justin en est un bon exemple pour les types d'articles personnalisés: http://justintadlock.com/archives/2010/04/29/custom-post-types-in-wordpress

Lorsque vous enregistrez votre type de publication personnalisé, vous pouvez le définir comme une fonctionnalité standard pour les publications, par exemple:

'capability_type'    => 'post',

ou être des capacités standard pour les pages, par exemple.

'capability_type' => 'page',

ou définissez votre propre type de capacité, avec des contrôles globaux, ou accédez directement aux contrôles spécifiques via un tableau spécifique, par exemple.

/* Global control over capabilities. */
'capability_type' => 'super_duper',

/* Specific control over capabilities. */
'capabilities' => array(
'edit_post' => 'edit_super_duper',
'edit_posts' => 'edit_super_dupers',
'edit_others_posts' => 'edit_others_super_dupers',
'publish_posts' => 'publish_super_dupers',
'read_post' => 'read_super_duper',
'read_private_posts' => 'read_private_super_dupers',
'delete_post' => 'delete_super_duper',
),
3
Monkey Puzzle