Possível ocultar a UI / Menu Tipo de Post Personalizado de Funções de Usuário específicas?

16

O que eu quero fazer é esconder completamente a interface do usuário para um tipo de post personalizado de funções de usuário específicas ... Eu encontrei anteriormente muitos recursos sobre como desabilitar o acesso ao uso desses CPTs, mas nada que realmente lhe permite ocultar completamente a interface do usuário do CPT todos juntos com base no usuário que está conectado ao painel.

Isso é importante, pois preciso que os clientes permaneçam completamente sem tipos de postagem personalizados para a loja, e se eles puderem ver a interface do cliente CPT da loja no painel ainda não fará diferença se os recursos deles forem restritos, pois vamos perguntar como eles podem adicionar produtos por conta própria.

Eu realmente prefiro não fazer isso com um plugin, no entanto, se houver algo que possa fazer o truque de uma forma não-inchada que ainda seria ótimo, eu suponho.

Obrigado pela sua ajuda SB

    
por Mr.Brown 17.09.2011 / 20:51

3 respostas

32

Para ocultar um item de menu de tipo de postagem de usuários não administradores:

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 deve ser o nome do seu tipo de postagem real.

EDITAR

outras páginas de menu que você pode remover:

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 -

Removendo itens de menu do plug-in.

Para plugins, parece que você precisa apenas da var de consulta page= . A outra coisa a notar é a prioridade, que é o terceiro argumento para o admin_menu add_action . Tem que ser definido baixo o suficiente (quanto maior o número, menor a prioridade) para que os plugins já tenham se adicionado ao 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 );
    
por Milo 17.09.2011 / 21:14
1

A resposta aceita pode ser usada para ocultar tipos de postagem personalizados (e outros itens variados), conforme descrito. Mas se você quiser ocultar o menu do plug-in CPT UI , também poderá remover a ação que o adiciona ao menu.

if( !current_user_can( 'administrator' ) ) {
    remove_action( 'admin_menu', 'cptui_plugin_menu' );
}
    
por Grant 15.10.2018 / 15:21
0

Você também pode usar o plug-in Adminimize . Este plugin tem opções para todos os tipos de post, caixas meta e muito mais para se esconder em diferentes funções. Sem codificação.

    
por bueltge 11.01.2013 / 20:29