自訂後臺的側(cè)邊欄頂級選單
?????先讓我們來看看,什麼是後臺的側(cè)邊側(cè)邊欄選單:
?????上圖是使用管理員帳號登陸後看到的側(cè)邊欄所有的選單項目,WordPress給不同角色的使用者定義了不同功能的使用權(quán)限,所以不同角色的使用者後臺所看到側(cè)邊欄選單項目都是不一樣的。這時候需求又來了,有些時候即使是管理員,部分菜單也是用不到了,例如用WordPress來建一個企業(yè)介紹性的網(wǎng)站,該站點根本沒有添加評論功能,那麼側(cè)邊欄的評論選單是用不著的,如果讓企業(yè)用戶看到,他們會感到很困惑。所以最好的方法是,根據(jù)實際情況,把不該有的側(cè)邊欄管理選單刪除。具體實作辦法是在目前主題的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], '<') === FALSE) { if(in_array($value[0] != NULL ? $value[0]:"" , $restricted)){ unset($menu[key($menu)]); } } else { $value2 = explode('<', $value[0]); if(in_array($value2[0] != NULL ? $value2[0]:"" , $restricted)){ unset($menu[key($menu)]); } } } } if ( is_admin() ) { // 刪除左側(cè)菜單 add_action('admin_menu', 'remove_menus'); }
自訂要移除的頂層選單
#?????以上程式碼核心部分是函數(shù)remove_menus(),然後透過WordPress的動作介面函數(shù)add_action來執(zhí)行remove_menus函數(shù)。在remove_menus函數(shù)中,透過$restricted陣列定義需要刪除哪些選單項,以上$restricted陣列提供了全部選單項,也就是說如果你全部將以上程式碼不做修改地複製到functions.php,那你的WordPress後臺就沒有任何選單了,你應(yīng)該依照實際需求去除選單,下面講講$restricted各個陣列項目對應(yīng)的選單:
- __('Dashboard') ?: 控制板選單
- __('Posts') ? ? ?: 文章 ##__('Media') ? ? ?:媒體__('Links') ? ? ?:連結(jié)__('Pages') : 頁面__('Comments') ? : 註解__('Appearance') : 外觀__('Plugins') ? ?: 外掛程式 __('Users') ? ? ?: 使用者__('Tools') ? ? ?:工具__('Settings') ? :設(shè)定
- #??? 註解
工具選單,你只需改寫以上程式碼第3行的$restricted陣列:$restricted = array(__('Comments'), __('Tools'));
?????WordPress後臺的頂級選單下面還有子選單,當(dāng)然有些子選單是用不到的,我們也可以刪除,WordPress 3.1以後的版本只需要用到一個函數(shù)
remove_submenu_page( $menu_slug, $submenu_slug ),這裡有兩個參數(shù),$menu_slug是子選單所在頂層選單的縮寫,$submenu_slug為子選單的縮寫,那要如何獲得這兩個縮略名呢?例如,點選頂級選單設(shè)定
,連結(jié)位址類似:?????http://example/wp-admin/options-general.php##?????那麼頂級選單設(shè)定
#的縮寫名為options-general.php,也就是移除http://example/wp-admin/後剩下的東西,依序類推;接著點選頂級選單
下面的子選單隱私權(quán),會開啟以下網(wǎng)址:?????http://example/wp-admin/options-privacy.php?????那麼子選單隱私權(quán)
的縮寫的縮寫為options-privacy.php,好了,就這麼簡單,下面是實現(xiàn)代碼,:
function remove_submenu() { // 刪除"設(shè)置"下面的子菜單"隱私" remove_submenu_page( 'options-general.php', 'options-privacy.php' ); // 刪除"外觀"下面的子菜單"編輯" remove_submenu_page( 'themes.php', 'theme-editor.php' ); } if ( is_admin() ) { add_action('admin_init','remove_submenu'); }根據(jù)用戶角色去除菜單
如果你想按使用者角色來去除對應(yīng)的側(cè)邊欄選單,那就再做一下使用者等級的判斷就可以了,給第11行的add_action加入判斷,改寫成:function remove_menus() {
global $menu;
// 這里$restricted設(shè)置了評論和工具菜單
$restricted = array(__('Comments'), __('Tools'));
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();
//如果當(dāng)前用戶的等級小于3,那么就刪除對應(yīng)的菜單
if ($current_user->user_level < 3 && is_admin()) {
add_action('admin_menu', 'remove_menus');
add_action('admin_init','remove_submenu');
}
?????在WordPress後臺– 使用者那裡,管理員可以檢視/ 編輯使用者的角色,以下是使用者角色和其等級的對應(yīng):
- ##0 級對應(yīng)
- 訂閱者 1 級對應(yīng)
- 投稿者 2 – 4 級對應(yīng)
- 作者 5 – 7 級對應(yīng)
- 編輯 8 – 10 等級對應(yīng)
- 管理員
使用超簡單的插件
?????下方推薦一個使用超簡單的插件,不需要任何編碼,只需拖曳滑鼠就可以實現(xiàn)上面所說的大部分功能。外掛名稱是:Admin Menu Editor,可以點此前往WordPress官方下載,啟用後到設(shè)定- Menu Editor,就可以編輯後臺的選單了,還可以新增外鏈選單,可以調(diào)整選單順序等等,剩下的你自己體驗吧!