it-swarm.com.de

Wie entferne ich das gesamte Admin-Menü?

Ich muss das Admin-Panel für meinen Benutzer anpassen. Wie entferne ich das gesamte Admin-Menü? Nicht entfernen Sie den Menüpunkt, ich meine ganz entfernen Sie die linke vertikale Menüleiste, enthalten Sie das Design des Menüs (z. B. CSS, Hintergrund ... etc.). Ich möchte, dass es leer wird.

Ich kann es durch CSS-Hack tun. Aber ich bevorzuge es Hook zu tun. Irgendwelche Ideen?

Vielen Dank

12
dev-jim

Der richtige Hook ist admin_menu und erstellen Sie eine Funktion zum Entfernen der zu entfernenden Menüs. Die folgenden 2 Funktionen entfernen alle Menüs.

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' );
}

Screenshot des linken Menüs mit den obigen 2 Funktionen:

enter image description here

14
Chris_O

Nach dem Beispiel von/wp-admin/admin-header.php->/wp-admin/menu-header.phpgibt es keinen Haken dafür.

Eine Lösung besteht darin, admin_head einzuhängen und CSS + jQuery auszuführen

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;
    }
}

[update]
Nach einer Klarstellung der Frage, wo klar wird, dass die Motivation Branding der Admin-Bereich ist, sind dies die 4 Plugins, die ich dafür benutze:

  • Adminimize (große Teile der WordPress-Oberfläche ausblenden, nach Rolle filtern)
  • Ozh 'Admin Dropdown-Menü (alle Admin-Menü in einem horizontalen CSS-gesteuerten Dropdown-Menü)
  • Admin Menus Fixed (perfekter Begleiter für Ozhs)
  • Admin Tweaks (Ich bin der Autor von diesem, und sein Hauptzweck ist es, viele Bereiche der Admin-Oberfläche anzupassen)
4
brasofilo

Ich kenne nur die Hook-freundliche Methode, remove_menu_page() für jeden einzelnen Menüpunkt zu verwenden. Selbst dann weiß ich nicht, was mit dem linken Balken selbst passiert (ob er auf 0px Breite zusammenfallen würde oder was). Ich stelle mir vor, dass Sie trotz der Verwendung der Hooks irgendwann ein Admin-Stylesheet in die Warteschlange einreihen möchten, um die verbleibenden Menü-Markup-Stile zu bereinigen.

Ich wäre vorsichtig dabei. Wenn Sie beispielsweise "Einstellungen" entfernen, können keine Plugins erreicht werden, die Menüseiten im Menü "Einstellungen" erstellen. Im Allgemeinen frage ich mich, wie nachhaltig es wirklich ist, das Menü vollständig zu entfernen.

2
mrwweb
add_action( 'admin_menu', 'remove_admin_menus' );

function remove_admin_menus(){
    global $menu;
    $menu = array();
}
1
kakoma

Ich verbessere die Lösung von @brasofilo, da es einen kleinen Fehler gibt. Ein Seiten-Reload mit nicht der besten Internetverbindung wird für sehr kurze Zeit angezeigt. Um dies zu vermeiden, habe ich ein bisschen mehr CSS hinzugefügt:

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;

    }
}
0
romapad