也想出現在這里?聯系我們

WordPress后臺刪除不需要的側邊欄菜單

2014.05.31 wordpress教程
  • 文章介紹
  • 升級版本
  • 評價&建議

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. ????//?這里$restricted設置了評論和工具菜單
  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. //如果當前用戶的等級小于3,那么就刪除對應的菜單
  17. if?($current_user->user_level?<?3?&&?is_admin())?{
  18. ????add_action('admin_menu',?'remove_menus');
  19. ????add_action('admin_init','remove_submenu');
  20. }

在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,就可以編輯后臺的菜單了,還可以添加外鏈菜單,可以調整菜單順序等等,剩下的你自己體驗吧!

有用1
  • 2014.05.31初次和大家見面了!

已擁有1人對該主題的建議

  1. 0樓
    陌小雨:

    只有強迫癥的人才會去折騰這個吧

    2015-08-04 上午 10:08 [回復]

發表評論

還能輸入240個字

Hi, 歡迎加入Wordpress技術交流群,帶你裝逼帶你飛!

我要入群
也想出現在這里?聯系我們
wordpress加速

我來推薦一個更牛逼的給你看看?

  • 猛戳我吧
夫妇野外交换HD高清版,免费A片在线观看,亚洲精品国产自在现线,中国老妇人60OLDMANTV