問題描述
我搜索高和低的插件,可以刪除/隱藏管理菜單項,包括自定義帖子類型和分類,基於用户角色。
我嘗試過的每一個都只是一個全局的隱藏,而不是基於用户的角色。其他更復雜的,如管理員不顯示自定義帖子類型或分類。
我必須寫我自己的功能,還是有一個我俯瞰的簡單插件?
最佳解決方案
更新:
再次閲讀麥克風的答案讓我認為你可以添加一個新的功能,角色,並使用它作為你的刪除條件,所以:
// first add your role the capability like so
// get the "author" role object
$role = get_role( 'administrator' );
// add "see_all_menus" to this role object
$role->add_cap( 'see_all_menus' );
//then remove menu items based on that
function remove_those_menu_items( $menu_order ){
global $menu;
// check using the new capability with current_user_can
if ( !current_user_can( 'see_all_menus' ) ) {
foreach ( $menu as $mkey => $m ) {
//custom post type name "portfolio"
$key = array_search( 'edit.php?post_type=portfolio', $m );
//pages menu
$keyB = array_search( 'edit.php?post_type=page', $m );
//posts menu
$keyC = array_search( 'edit.php', $m );
if ( $key || $keyB || $keyC )
unset( $menu[$mkey] );
}
}
return $menu_order;
}
//Then just Hook that function to "menu_order"
add_filter( 'menu_order', 'remove_those_menu_items' );
老回答
我完全同意 mike 發佈的內容,但如果您不符合自定義編碼,請查看 Admin Menu Editor 插件。
它允許您按級別設置訪問權限。
參考文獻
注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。