Possible de masquer l'interface utilisateur / le type de publication personnalisée à partir de rôles d'utilisateur spécifiques?

16

Ce que je cherche à faire est de cacher complètement l'interface utilisateur pour un type de message personnalisé à des rôles d'utilisateur spécifiques ... J'ai déjà trouvé de nombreuses ressources sur la façon de désactiver l'accès à ces CPT, mais rien qui ne vous permette vraiment de cacher complètement l’interface utilisateur CPT en fonction de l’utilisateur connecté au tableau de bord.

Cela est important car j'ai besoin que les clients restent complètement en dehors des types de publication personnalisés pour le magasin. S'ils peuvent voir l'interface utilisateur CPT du magasin dans le tableau de bord, le fait que leurs capacités soient limitées ne fait aucune différence. va demander comment ils peuvent s'y prendre pour ajouter un produit par eux-mêmes à la suite.

Je préférerais vraiment ne pas accomplir cela avec un plugin, cependant, s’il ya quelque chose qui peut faire l’affaire de manière non gonflée, cela serait quand même génial, je suppose.

Merci pour votre aide, SB

    
posée Mr.Brown 17.09.2011 - 20:51

3 réponses

32

Pour masquer un élément de menu de type publication aux utilisateurs non-administrateurs:

function wpse28782_remove_menu_items() {
    if( !current_user_can( 'administrator' ) ):
        remove_menu_page( 'edit.php?post_type=your_post_type' );
    endif;
}
add_action( 'admin_menu', 'wpse28782_remove_menu_items' );

your_post_type devrait être le nom de votre type de message actuel.

MODIFIER -

autres pages de menu que vous pouvez supprimer:

remove_menu_page('edit.php'); // Posts
remove_menu_page('upload.php'); // Media
remove_menu_page('link-manager.php'); // Links
remove_menu_page('edit-comments.php'); // Comments
remove_menu_page('edit.php?post_type=page'); // Pages
remove_menu_page('plugins.php'); // Plugins
remove_menu_page('themes.php'); // Appearance
remove_menu_page('users.php'); // Users
remove_menu_page('tools.php'); // Tools
remove_menu_page('options-general.php'); // Settings

EDIT 2 -

Suppression des éléments de menu du plugin.

Pour les plugins, il semble que vous n’ayez besoin que de la variable page= query var. L'autre chose à noter est la priorité, qui est le troisième argument de admin_menu add_action . Il doit être réglé suffisamment bas (plus le nombre est élevé, plus la priorité est basse) pour que les plugins se soient déjà ajoutés au menu.

function wpse28782_remove_plugin_admin_menu() {
    if( !current_user_can( 'administrator' ) ):
        remove_menu_page('cart66_admin');
    endif;
}
add_action( 'admin_menu', 'wpse28782_remove_plugin_admin_menu', 9999 );
    
réponse donnée Milo 17.09.2011 - 21:14
1

La réponse acceptée peut être utilisée pour masquer les types d'articles personnalisés (et d'autres éléments assortis) comme décrit. Mais si vous souhaitez masquer le menu du plug-in CPT UI , vous pouvez également supprimer l'action qui l'ajoute au menu.

if( !current_user_can( 'administrator' ) ) {
    remove_action( 'admin_menu', 'cptui_plugin_menu' );
}
    
réponse donnée Grant 15.10.2018 - 15:21
0

Vous pouvez également utiliser le plug-in Adminimize . Ce plugin propose des options pour tous les types de publication, les boîtes à méta et bien d’autres à masquer pour différents rôles. Pas de codage.

    
réponse donnée bueltge 11.01.2013 - 20:29

Lire d'autres questions sur les étiquettes