問題描述
我需要為我的用户定製管理面板。那麼如何刪除整個管理菜單?不刪除菜單項,我的意思是完全刪除左側的垂直菜單欄,包括菜單的設計 (例如,css,background..etc) 。我想要變成空白
我可以通過 css hack 來做到這一點。但是我更喜歡使用 hook 來做到這一點。有任何想法嗎?
謝謝
最佳解決方案
使用正確的鈎子是 admin_menu,然後創建一個功能來刪除要刪除的菜單。以下 2 個功能刪除所有菜單。
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' );
}
使用上述 2 功能的左側菜單的屏幕截圖:
次佳解決方案
繼/wp-admin/admin-header.php  – > /wp-admin/menu-header.php 沒有鈎子去做。
一個解決方案是鈎在 admin_head 並做一些 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;
    }
}
[更新] 根據對問題的澄清,在哪裏明確表示動機是管理區域的品牌,這些是我使用的 4 個插件:
- 
Adminimize(隱藏大塊 WordPress 界面,按角色過濾) 
- 
Ozh’ Admin Drop Down Menu(所有管理菜單在水平 CSS 驅動下拉菜單中) 
- 
Admin Menus Fixed(Ozh 的完美伴侶) 
- 
Admin Tweaks(我是這個的作者,它的主要目的是定製許多領域的管理界面) 
參考文獻
注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。
 
											
				 
					