首頁  >  文章  >  CMS教程  >  WordPress企業建站系列:後台刪除不需要的側邊欄選單

WordPress企業建站系列:後台刪除不需要的側邊欄選單

PHPz
PHPz轉載
2023-03-22 16:54:221117瀏覽

本文是WordPress企業建站系列教學的第一篇文章,帶大家聊聊WordPress後台怎麼刪除不需要的側邊欄選單,希望對大家有幫助。

WordPress企業建站系列:後台刪除不需要的側邊欄選單

自訂後台的側邊欄頂級選單

     先讓我們來看看,什麼是後台的側邊側邊欄選單:

WordPress企業建站系列:後台刪除不需要的側邊欄選單

     上圖是使用管理員帳號登陸後看到的側邊欄所有的選單項目,WordPress給不同角色的使用者定義了不同功能的使用權限,所以不同角色的使用者後台所看到側邊欄選單項目都是不一樣的。這時候需求又來了,有些時候即使是管理員,部分菜單也是用不到了,例如用WordPress來建一個企業介紹性的網站,該站點根本沒有添加評論功能,那麼側邊欄的評論選單是用不著的,如果讓企業用戶看到,他們會感到很困惑。所以最好的方法是,根據實際情況,把不該有的側邊欄管理選單刪除。具體實作辦法是在目前主題的functions.php 第一個

function remove_menus() {
  global $menu;
  $restricted = array(__('Dashboard'), __('Posts'), __('Media'), __('Links'), __('Pages'), __('Appearance'), __('Tools'), __('Users'), __('Settings'), __('Comments'), __('Plugins'));
  end ($menu);
  while (prev($menu)){
    $value = explode(' ',$menu[key($menu)][0]);
    if(strpos($value[0], &#39;<&#39;) === FALSE) {
      if(in_array($value[0] != NULL ? $value[0]:"" , $restricted)){
        unset($menu[key($menu)]);
      }
    }
    else {
      $value2 = explode(&#39;<&#39;, $value[0]);
      if(in_array($value2[0] != NULL ? $value2[0]:"" , $restricted)){
        unset($menu[key($menu)]);
      }
    }
  }
}

if ( is_admin() ) {
  // 删除左侧菜单
  add_action(&#39;admin_menu&#39;, &#39;remove_menus&#39;);
}

自訂要移除的頂層選單

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

  • __('Dashboard')  : 控制板選單
  • __('Posts')      : 文章
  • ##__('Media')      :媒體
  • __('Links')      :連結
  • __('Pages') : 頁面
  • __('Comments')   : 註解
  • __('Appearance') : 外觀
  • __('Plugins')    : 外掛程式
  • __('Users')      : 使用者
  • __('Tools')      :工具
  • __('Settings')   :設定
  • #   
  • 註解

工具選單,你只需改寫以上程式碼第3行的$restricted陣列:

$restricted = array(__(&#39;Comments&#39;), __(&#39;Tools&#39;));

刪除不必要的子選單

     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,好了,就這麼簡單,下面是實現代碼,:

function remove_submenu() {
	// 删除"设置"下面的子菜单"隐私"
	remove_submenu_page( &#39;options-general.php&#39;, &#39;options-privacy.php&#39; );

	// 删除"外观"下面的子菜单"编辑"
	remove_submenu_page( &#39;themes.php&#39;, &#39;theme-editor.php&#39; );
}

if ( is_admin() ) {
    add_action(&#39;admin_init&#39;,&#39;remove_submenu&#39;);
}

根據用戶角色去除菜單

如果你想按使用者角色來去除對應的側邊欄選單,那就再做一下使用者等級的判斷就可以了,給第11行的add_action加入判斷,改寫成:
function remove_menus() {
    global $menu;

    // 这里$restricted设置了评论和工具菜单
    $restricted = array(__(&#39;Comments&#39;), __(&#39;Tools&#39;));
    end ($menu);
    while (prev($menu)){
        $value = explode(' ',$menu[key($menu)][0]);
        if(in_array($value[0] != NULL?$value[0]:"" , $restricted)){unset($menu[key($menu)]);}
    }
}

function remove_submenu() {
	remove_submenu_page( 'options-general.php', 'options-privacy.php' );
}

global $current_user;
get_currentuserinfo();

//如果当前用户的等级小于3,那么就删除对应的菜单
if ($current_user->user_level < 3 && is_admin()) {
    add_action('admin_menu', 'remove_menus');
    add_action('admin_init','remove_submenu');
}

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

    ##0 級對應
  • 訂閱者
  • 1 級對應
  • 投稿者
  • 2 – 4 級對應
  • 作者
  • 5 – 7 級對應
  • 編輯
  • 8 – 10 等級對應
  • 管理員
     WordPress 3.0 之後將逐漸棄用使用者數位等級,且可用使用者權限,可用函數current_user_can()來判斷使用者權限。

使用超簡單的插件

     下方推薦一個使用超簡單的插件,不需要任何編碼,只需拖曳滑鼠就可以實現上面所說的大部分功能。外掛名稱是:

Admin Menu Editor,可以點此前往WordPress官方下載,啟用後到設定- Menu Editor,就可以編輯後台的選單了,還可以新增外鏈選單,可以調整選單順序等等,剩下的你自己體驗吧!

推薦學習:《

WordPress教學

以上是WordPress企業建站系列:後台刪除不需要的側邊欄選單的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:ludou.org。如有侵權,請聯絡admin@php.cn刪除