web-dev-qa-db-fra.com

Fonctions de sous-menu de type de message personnalisé - plug-in personnalisé

J'essaie d'ajouter une nouvelle fonctionnalité personnalisée pour pouvoir masquer le type de publication personnalisé aux non-administrateurs. Dans mon type de message personnalisé, j'ai quelques taxonomies personnalisées, puis 2 sous-menus. L'administrateur peut voir le menu du type d'article personnalisé, les taxonomies et les sous-menus, mais les autres utilisateurs ne peuvent voir que les sous-menus. Mais lorsque j'essaie d'appliquer le add_role sur le hook d'activation, les sous-menus ne sont pas affichés. J'ai aussi essayé avec add_cap et la même chose se produit. J'ai également essayé d'ajouter des fonctionnalités dans le type de publication personnalisé, puis seules les taxonomies étaient affichées. Je ne sais pas ce que je fais mal. Des idées?

EDIT: Comme demandé dans le commentaire, voici comment j'ajoute les 2 sous-menus:

     add_action('admin_menu','bsp_plugin_menu');
     function bsp_plugin_menu(){
add_submenu_page('edit.php?post_type=badge', 'Add new student', 'Add new students', 'manage-options','add-new-students','bsp_add_new_students');
add_submenu_page('edit.php?post_type=badge', 'Show students', 'Show students', 'manage_options','show-students','bsp_students_show');   
}
1
dea

Donc, pour répondre à ma question ... Je ne sais pas si c'est la meilleure approche: dans le type de message personnalisé, j'ai ajouté des fonctionnalités pour lesquelles seul l'administrateur a les privilèges suivants:

    'capabilities'=>array(
        'edit_post'=>'update_core',
        'read_post'=>'update_core',
        'delete_post'=>'update_core',
        'edit_posts'=>'update_core',
        'edit_others_posts'=>'update_core',
        'publish_posts'=>'update_core',
        'read_private_posts'=>'update_core'
    ),

Et puis j'ai aussi fait ça pour les taxonomies personnalisées comme ceci:

    'capabilities'=>array(
    'manage_terms'=>'manage_options',
    'edit_terms'=>'manage_options',
    'delete_terms'=>'manage_options',
    'assign_terms'=>'manage_options',
    ),

Donc, seul l'administrateur peut le voir et le gérer. Pour le sous-menu du paramètre de capacité, je viens d'entrer dans la capacité commune à l'administrateur, à l'éditeur et à l'auteur (publish_posts).

add_submenu_page('edit.php?post_type=badge', 'Add new student', 'Add new students', 'publish_posts','add-new-students','bsp_add_new_students');
0
dea