web-dev-qa-db-fra.com

Autoriser les utilisateurs ayant un rôle d'auteur à modifier un type de publication personnalisé

J'ai ce projet déjà codé qui a un type d'article personnalisé avec un certain comportement: il ne s'agit que d'un seul article et les administrateurs/éditeurs/auteurs ne peuvent que modifier son contenu. son contenu est une table de données personnalisée. les administrateurs et les éditeurs peuvent éditer parfaitement. Je veux que les auteurs puissent également éditer cet article, mais je n'arrive pas à savoir comment. le code est le suivant:

add_action('init', 'register_post_types');
    function register_post_types(){

    register_post_type('post_type_uo', array(
            'labels' => array(
            'name'               => 'uo Articles', 
            'singular_name'      => 'uo', 
            'add_new'            => 'Add uo', 
            'edit_item'          => 'Edit Post', 
            'view_item'          => 'View Post', 
            'search_items'       => 'Find Post', 
            'not_found'          => 'Not Found', 
            'not_found_in_trash' => 'Not Found', 
            'parent_item_colon'  => '', 
            'menu_name'          => 'uo', 
        ),
    'public' => true, 
    'menu_position' => 4, 
    'exclude_from_search' => true,  
    'has_archive' => false,  
    'rewrite' => array('slug' => 'daily-uo'), 
    'taxonomies'    => array( 'dailies' , 'category'),
    'menu_icon'     => 'dashicons-chart-line', // custom icon
    'capabilities' => array('create_posts'  => false,),
    'map_meta_cap' => true,
    'supports'      => array('title')
    ));
    }

j'ai essayé d'ajouter un tableau de capacités, puis installé le plugin "Membres".

'capabilities' => array(
        'create_posts' => 'do_not_allow', // false < WP 4.5, credit @Ewout
        'read_posts' => 'read_uos',
        'edit_post' => 'edit_uo',
        'edit_posts' => 'edit_uos',
        'published_posts' => 'publish_uo',
        'edit_published_posts' => 'edit_uo_p',
        'edit_others_posts ' => 'edit_uo_others'
      ),

je peux voir les fonctionnalités de la page des rôles du plugin et les sélectionner, mais toujours pas d'accès en édition pour les utilisateurs ayant le rôle Athor.

Finalement j'ai créé un nouveau rôle -uo_Author- via le plugin en donnant les permissions correctes (??) mais toujours pas de chance

des idées?

1
JoePanpi

Enregistrez les "quotidiens" comme taxonomie.

Le codex pour " register type de poste " indique "même si vous enregistrez une taxonomie lors de la création du type de publication, vous devez néanmoins enregistrer et définir explicitement la taxonomie à l'aide de register_taxonomy ()." "

PS: J'aurais ajouté ceci comme commentaire à votre question si j'avais pu.

UPDATE: 22 août 2018
D'ACCORD. Reprenons cette discussion. Vous do devez ajouter la taxonomie, mais ce n'est pas pour cette raison que vos auteurs ne peuvent pas voir/éditer vos publications.

Dans votre fonction register_post_type, il y avait quelques erreurs de syntaxe dans vos "capacités" qui étaient suffisantes pour empêcher un auteur de voir la publication uo. Donc, éditez les "capacités" pour correspondre aux éléments suivants:

'capabilities' => array( 'create_posts' => 'do_not_allow', // false < WP 4.5, credit @Ewout 'read_posts' => 'read_uos', 'edit_post' => 'edit_uo', 'edit_posts' => 'edit_uos', 'publish_posts' => 'publish_uos', 'edit_published_posts' => 'edit_published_uos', 'edit_others_posts' => 'edit_others_uos' ),

À l’aide du plug-in Membres, attribuez toutes les fonctionnalités à "uo Articles". Toutefois, vous ne voudrez peut-être pas accorder les diverses fonctionnalités "supprimer" et "privée".

Vous n'avez pas besoin d'ajouter le rôle d'auteur supplémentaire. En fait, il pourrait être plus déroutant que cela vaille la peine.

0
Tedinoz