WordPress 的後臺說簡單也簡單,說複雜也複雜。。。為了方便,我們可以想辦法透過技術手段來對後臺的左側欄進行刪除或隱藏,自然是也可以根據不同的使用者角色來定義後臺側欄選單的刪減,那麼下面就直接說核心教程了!

  1. function remove_menus() {
  2.   global $menu;
  3.   $restricted = array(__('Dashboard'), __('Posts'), __('Media'), __('Links'), __('Pages'), __('Appearance'), __('Tools'), __('Users'), __('Settings'), __('Comments'), __('Plugins'));
  4.   end ($menu);
  5.   while (prev($menu)){
  6.     $value = explode(' ',$menu[key($menu)][0]);
  7.     if(strpos($value[0], '<') === FALSE) {
  8.       if(in_array($value[0] != NULL ? $value[0]:"" , $restricted)){
  9.         unset($menu[key($menu)]);
  10.       }
  11.     }
  12.     else {
  13.       $value2 = explode('<', $value[0]);
  14.       if(in_array($value2[0] != NULL ? $value2[0]:"" , $restricted)){
  15.         unset($menu[key($menu)]);
  16.       }
  17.     }
  18.   }
  19. }
  20. if ( is_admin() ) {
  21.   
  22.   add_action('admin_menu', 'remove_menus');
  23. }

以上程式碼核心部分是一個函式 remove_menus(),然後透過 WordPress 的動作介面函式 add_action 來執行 remove_menus 函式。在 remove_menus 函式中,透過 $restricted 陣列來定義需要刪除哪些選單項,以上 $restricted 陣列提供了全部選單項,也就是說如果你全部將以上程式碼不做修改地複製到 functions.php,那你的 WordPress 後臺就沒有任何選單了,你應該根據實際需要去除選單,下面講講 $restricted 各個陣列項對應的選單:

  1. __('Dashboard') : 控制板選單
  2. __('Posts') : 文章
  3. __('Media') : 媒體
  4. __('Links') : 連結
  5. __('Pages') : 頁面
  6. __('Comments') : 評論
  7. __('Appearance') : 外觀
  8. __('Plugins') : 外掛
  9. __('Users') : 使用者
  10. __('Tools') : 工具
  11. __('Settings') : 設定

例如你只想去除評論和工具選單,你只需改寫以上程式碼第 3 行的 $restricted 陣列:

  1. $restricted = array(__('Comments'), __('Tools'));

刪除不必要的子選單

WordPress 後臺的頂級選單下面還有子選單,當然有些子選單是用不到的,我們也可以將其刪除,WordPress 3.1 以後的版本只需用到一個函式 remove_submenu_page( $menu_slug, $submenu_slug ),這裡有兩個引數,$menu_slug 是子選單所在頂級選單的縮略名,$submenu_slug 為子選單的縮略名,那如何獲得這兩個縮略名呢?例如,點選頂級選單設定,連結地址類似:

http://example/wp-admin/options-general.php

那麼頂級選單設定的縮略名為 options-general.php,也就是去除 http://example/wp-admin/後剩下的東西,依次類推;接著點選頂級選單設定下面的子選單隱私,會開啟以下網址:

http://example/wp-admin/options-privacy.php

那麼子選單隱私的縮略名為 options-privacy.php,好了,就這麼簡單,下面是實現程式碼,:

  1. function remove_submenu() {
  2.     
  3.     remove_submenu_page( 'options-general.php', 'options-privacy.php' );
  4.     
  5.     remove_submenu_page( 'themes.php', 'theme-editor.php' );
  6. }
  7. if ( is_admin() ) {
  8.     add_action('admin_init','remove_submenu');
  9. }

根據使用者角色去除選單

如果你想按使用者角色來去除相應的側邊欄選單,那就再做一下使用者等級的判斷就可以了,給第 11 行的 add_action 新增判斷,改寫成:

  1. function remove_menus() {
  2.     global $menu;
  3.     
  4.     $restricted = array(__('Comments'), __('Tools'));
  5.     end ($menu);
  6.     while (prev($menu)){
  7.         $value = explode(' ',$menu[key($menu)][0]);
  8.         if(in_array($value[0] != NULL?$value[0]:"" , $restricted)){unset($menu[key($menu)]);}
  9.     }
  10. }
  11. function remove_submenu() {
  12.     remove_submenu_page( 'options-general.php', 'options-privacy.php' );
  13. }
  14. global $current_user;
  15. get_currentuserinfo();
  16. if ($current_user->user_level < 3 && is_admin()) {
  17.     add_action('admin_menu', 'remove_menus');
  18.     add_action('admin_init','remove_submenu');
  19. }

在 WordPress 後臺 – 使用者那裡,管理員可以檢視 / 編輯使用者的角色,以下是使用者角色和其等級的對應關係:

  1. 0 級對應 訂閱者
  2. 1 級對應 投稿者
  3. 2 – 4 級對應 作者
  4. 5 – 7 級對應 編輯
  5. 8 – 10 級對應 管理員

WordPress 3.0 之後將逐漸棄用使用者數字等級,推薦使使用者許可權,可以用函式 current_user_can() 來判斷使用者許可權。

使用超簡單的外掛

下面推薦一個使用超簡單的外掛,不需要任何編碼,只需拖拖滑鼠就可以實現上面所說的大部分功能。外掛名稱是:Admin Menu Editor,可以點此前往 WordPress 官方下載,啟用後到設定 – Menu Editor,就可以編輯後臺的選單了,還可以新增外鏈選單,可以調整選單順序等等,剩下的你自己體驗吧!