Como remover todo o menu do administrador?

11

Eu preciso personalizar o painel de administração do meu usuário. Então, como removo todo o menu do administrador? Não remova o item de menu, quero dizer remover completamente a barra de menu vertical esquerda, incluir o design do menu (por exemplo, css, background..etc). Eu quero que fique em branco.

Eu posso fazer isso com o CSS css. Mas eu prefiro usar o gancho para fazer isso. Alguma idéia?

Obrigado

    
por dev-jim 14.05.2012 / 19:38

5 respostas

13

O gancho correto a usar é admin_menu e, em seguida, criar uma função para remover os menus que você deseja remover. As seguintes 2 funções removem todos os menus.

add_action( 'admin_menu', 'remove_admin_menus' );
add_action( 'admin_menu', 'remove_admin_submenus' );

//Remove top level admin menus
function remove_admin_menus() {
    remove_menu_page( 'edit-comments.php' );
    remove_menu_page( 'link-manager.php' );
    remove_menu_page( 'tools.php' );
    remove_menu_page( 'plugins.php' );
    remove_menu_page( 'users.php' );
    remove_menu_page( 'options-general.php' );
    remove_menu_page( 'upload.php' );
    remove_menu_page( 'edit.php' );
    remove_menu_page( 'edit.php?post_type=page' );
    remove_menu_page( 'themes.php' );
}


//Remove sub level admin menus
function remove_admin_submenus() {
    remove_submenu_page( 'themes.php', 'theme-editor.php' );
    remove_submenu_page( 'themes.php', 'themes.php' );
    remove_submenu_page( 'edit.php', 'edit-tags.php?taxonomy=post_tag' );
    remove_submenu_page( 'edit.php', 'edit-tags.php?taxonomy=category' );
    remove_submenu_page( 'edit.php', 'post-new.php' );
    remove_submenu_page( 'themes.php', 'nav-menus.php' );
    remove_submenu_page( 'themes.php', 'widgets.php' );
    remove_submenu_page( 'themes.php', 'theme-editor.php' );
    remove_submenu_page( 'plugins.php', 'plugin-editor.php' );
    remove_submenu_page( 'plugins.php', 'plugin-install.php' );
    remove_submenu_page( 'users.php', 'users.php' );
    remove_submenu_page( 'users.php', 'user-new.php' );
    remove_submenu_page( 'upload.php', 'media-new.php' );
    remove_submenu_page( 'options-general.php', 'options-writing.php' );
    remove_submenu_page( 'options-general.php', 'options-discussion.php' );
    remove_submenu_page( 'options-general.php', 'options-reading.php' );
    remove_submenu_page( 'options-general.php', 'options-discussion.php' );
    remove_submenu_page( 'options-general.php', 'options-media.php' );
    remove_submenu_page( 'options-general.php', 'options-privacy.php' );
    remove_submenu_page( 'options-general.php', 'options-permalinks.php' );
    remove_submenu_page( 'index.php', 'update-core.php' );
}

Captura de tela do menu esquerdo usando as duas funções acima:

    
por Chris_O 15.05.2012 / 05:09
4

Seguindo o exemplo de /wp-admin/admin-header.php - > /wp-admin/menu-header.php não há gancho para isso.

Uma solução é ligar em admin_head e fazer algumas CSS + jQuery

add_action('admin_head', 'wpse_52099_script_enqueuer');
function wpse_52099_script_enqueuer(){
    if(!current_user_can('administrator')) {
        echo <<<HTML
        <style type="text/css">
        #wpcontent, #footer { margin-left: 0px; }
        </style>
        <script type="text/javascript">
        jQuery(document).ready( function($) {
            $('#adminmenuback, #adminmenuwrap').remove();
        });     
        </script>
HTML;
    }
}

[atualizar]
De acordo com um esclarecimento para a questão, onde fica claro que a motivação é branding na área de administração, estes são os 4 plugins que eu uso para isso:

por brasofilo 15.05.2012 / 03:42
2

A única maneira amigável que conheço é usar remove_menu_page() para cada item de menu. Mesmo assim, eu não sei o que acontece com a própria barra esquerda (se ela cairia até 0 px de largura ou o que). Mesmo com o uso dos ganchos, imagino que em algum momento você deseje enfileirar uma folha de estilo de administração para limpar o que resta dos estilos de marcação de menu.

Eu tomaria cuidado ao fazer isso. Por exemplo, se você remover "Configurações", todos os plug-ins que criarem páginas de menu no menu "Configurações" não poderão ser acessados. Em geral, eu me pergunto o quão sustentável é realmente remover completamente o menu.

    
por mrwweb 14.05.2012 / 20:40
1
add_action( 'admin_menu', 'remove_admin_menus' );

function remove_admin_menus(){
    global $menu;
    $menu = array();
}
    
por kakoma 16.04.2016 / 06:13
0

Eu melhoro a solução do @brasofilo pois ele tem um pequeno bug - na página recarregar com o melhor menu de conexão com a internet aparecerá por muito pouco tempo. Para evitar isso eu adicionei um pouco mais de css:

add_action('admin_head', 'wpse_52099_script_enqueuer');

function wpse_52099_script_enqueuer() {

    if(!current_user_can('administrator')) { 

echo <<<HTML
<style type="text/css">
#wpcontent, #footer { margin-left: 0px !important; }
#adminmenuback, #adminmenuwrap { display: none !important; }
</style>
<script type="text/javascript">
jQuery(document).ready( function($) {
    $('#adminmenuback, #adminmenuwrap').remove();
});
</script>
HTML;

    }
}
    
por romapad 30.05.2016 / 21:29