WordPress 隱藏管理後台側邊欄選單

2017-06-29

針對特定帳號 隱藏側邊欄特定的選單

如果使用內建的不同層級 role 已經無法滿足需求
需要客製隱藏不同的選單
則必須增加程式至 wp-includes/functions.php 中

function my_remove_menus() {
    // 受限制的帳號列表
    $accounts = array('user1','user2','user3');

    // 取得當前登入帳號的資訊
    $user = get_currentuserinfo();
    
    // 取得當前登入的帳號 $user->data->user_login
    if(in_array(strtolower($user->data->user_login), $accounts)) {
        // 依據需求隱藏選單各欄位
        remove_menu_page( 'index.php' );                  //Dashboard
        remove_menu_page( 'edit.php' );                   //Posts
        remove_menu_page( 'upload.php' );                 //Media
        remove_menu_page( 'edit.php?post_type=page' );    //Pages
        remove_menu_page( 'edit-comments.php' );          //Comments
        remove_menu_page( 'themes.php' );                 //Appearance
        remove_menu_page( 'plugins.php' );                //Plugins
        remove_menu_page( 'users.php' );                  //Users
        remove_menu_page( 'tools.php' );                  //Tools
        remove_menu_page( 'options-general.php' );        //Settings
    }
}

add_action( 'admin_menu', 'my_remove_menus' );

此段程式只是單純隱藏 如果知道正確網址的話仍然可以進入

ref: https://codex.wordpress.org/Function_Reference/remove_menu_page

發表迴響

彙整

分類