WordPress 支持多種用户角色,包括管理員、編輯、作者、投稿者和訂閲者等,你還可以自定義一些角色,這個不在本文討論範圍。當你的網站想讓不同等級用户的賬户後台顯示不同的側邊欄菜單項時就需要對其進行定製修改。我們可以根據不同的用户角色顯示他能查看的不同菜單項,這樣就便於管理不同等級用户的權限。本文將介紹如何根據不同的用户角色顯示後台側邊欄菜單項的方法。

1 、根據不同用户角色顯示不同的菜單項:

/*

根據用户角色移除菜單項

*/

functionwpzhinan_remove_menu_page(){

remove_submenu_page('edit.php','post-new.php');//移除"寫文章"子菜單

remove_menu_page('tools.php');

remove_menu_page('edit-comments.php');

}

if(!current_user_can('subscriber')&&is_admin()){

add_action('admin_menu','wpzhinan_remove_menu_page');

}

將以上代碼插入主題 fuction.php 即可,以上代碼僅以實例説明用法。上述代碼的意思是當用户級別為訂閲者時將不顯示 「寫文章」 、 「工具」 和 「評論」 等側邊欄菜單項。如需添加多種不同的角色側邊欄菜單限制,除了要修改需移除的菜單項外,還需注意修改 function 名稱,不能使用相同的 function 名稱,否則將報錯噢!

你可以根據需要替換成你需要作限制的用户角色,也可修改需要限制的菜單項。 WordPress 默認的 5 種角色名:administrator 、 editor 、 author 、 contributor 、 subscriber 。可用這些角色名替換上述示例代碼中的 subscriber 訂閲者角色。
2 、如需所有角色不顯示一些後台菜單項,可以用如下方法:

/*

所有角色不顯示一些後台菜單項

*/

functionremove_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(in_array($value[0]!=NULL?$value[0]:"",$restricted)){unset($menu[key($menu)]);}

}

}

if(is_admin()){

// 刪除左側菜單

add_action('admin_menu','remove_menus');

}

以上代碼中會將所有側邊欄默認菜單刪除,主要是為了告訴您有哪些菜單項是可被刪除、怎樣刪除,你可以根據需要需要保留的菜單項刪除以上代碼中的逗號分隔中的代碼即可。需將以上代碼插入主題 fuction.php 。