2012-03-23 8 views
1

ich einige des Armaturenbrett-Menü Registerkarten auf meiner Wordpress-Seite mit diesem Code entfernen möge:Entfernen Armaturenbrett Menüoptionen für die Benutzerrolle Editor

//Remove some menu options 
function remove_menus() { 
global $menu; 
    $restricted = array(__('Dashboard'), __('Posts'), __('Media'), __('Contact'), __('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)]);} 
    } 
} 
add_action('admin_menu', 'remove_menus'); 

Im Moment entfernt diese die Menüs aus allen Benutzerrollen, wie Könnte ich das aktualisieren, um nur für Redakteure zu gelten?

Ive erhielt auch diesen Code-Snippet, aber nicht wissen, wie es zu kombinieren mit dem, was ich habe:

$editor = get_role('editor'); 
$editor->remove_cap('publish_pages'); 
+0

Wenn ich mich erinnere, remove_cap verwendet, wird auch Wordpress induziert die relevanten Menüpunkte für Sie ausblenden , aber es kann von deiner Version abhängen. –

Antwort

5
function remove_menus() { 
    if(is_user_logged_in() && current_user_can('editor')) 
    { 
     global $menu; 
     $restricted = array(__('Dashboard'), __('Posts'), __('Media'), __('Contact'), __('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)]);} 
     } 
    } 
} 
add_action('admin_menu', 'remove_menus'); 
Verwandte Themen