2013-04-12 15 views
1

我有一個需要只有某些文章類型訪問的自定義用戶角色,我試圖隱藏從他們其他菜單與此:無法刪除某些菜單與未設置

function remove_menus() { 

    global $current_user; 
    if ($current_user->wp_capabilities['my_custom_capability']){ 

     global $menu; 
     $restricted = array(
     __('Supporters'), 
     __('Posts'), 
     __('Press Release'), 
     __('Consumer Care'), 
     __('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)]);} 
     } 
    } 
} 
add_action('admin_menu', 'remove_menus'); 

這適用於支持者(這是另一種自定義帖子類型),帖子和工具,但不適用於消費者維護或新聞發佈。我已經嘗試了我能想到的所有變體:

__('Consumer_Care'), 
__('Consumer-Care'), 
__('consumer care'), 
__('consumer-care'), 
__('consumer_care') 

他們都沒有做這項工作。我該怎麼做?

回答

0

只需在動作調用中添加一個high priority即可。沒有一個,它會在默認10和許多插件後運行,所以你的unset不會得到它們。

add_action('admin_menu', 'remove_menus', 999);