Скрыть меню администратора на роль в WordPress

Я пытаюсь скрыть определенное количество меню для клиента. Сейчас я использую следующий код, и он хорошо работает, но он удаляет его для всех, насколько я могу судить. Как и во всех ролях.

function remove_menus () { global $menu; $restricted = array(__('Dashboard'), __('Media'), __('Links'), __('Appearance'), __('Tools'), __('Users'), __('Settings'), __('Profile'),__('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'); 

Какую строку я бы использовал, чтобы вызвать вызов только редактора или автора и т. Д.?

Большое спасибо

Solutions Collecting From Web of "Скрыть меню администратора на роль в WordPress"

вы можете это сделать, он скрывает меню (все они могут по-прежнему перейти к URL-адресу меню, если они это знают), исходя из возможностей. Вы можете легко изменить его на роль или даже на имя пользователя.

Я думаю, что роль пользователя – «user_role», а для имени пользователя – «user_login». В приведенном ниже примере используется «user_level» из 10, что означает всех, кроме администратора.

 function remove_menus() { global $menu; global $current_user; get_currentuserinfo(); if($current_user->user_level < 10) { $restricted = array(__('Pages'), __('Media'), __('Links'), __('Custom Post Name'), __('Comments'), __('Appearance'), __('Plugins'), __('Users'), __('Tools'), __('Settings'), __('Posts'), ); end ($menu); while (prev($menu)){ $value = explode(' ',$menu[key($menu)][0]); if(in_array($value[0] != NULL?$value[0]:"" , $restricted)){unset($menu[key($menu)]);} }// end while }// end if } add_action('admin_menu', 'remove_menus'); 

Используйте функцию current_user_can() для создания этого $restricted массива в кусках, прежде чем передавать его через этот цикл отмены. Вам придется использовать возможности, а не имена ролей, чтобы они работали.

Если вы не против использования плагина вместо жесткого кода, попробуйте использовать:

http://wordpress.org/extend/plugins/adminimize/

Я использую его для всех сайтов, которые я создаю, чтобы настроить то, что видят разные роли, это дает вам множество опций, а не только меню.