Intereting Posts
Как мы можем получить идентификатор автора по имени Как добавить пользовательскую кнопку подписки в настраиваемый тип сообщения? Форма создания конечного пользователя! Как сохранить пользователя на одной странице в случае ошибки? Как изменить отдельный виджет в дочерней теме? Пользовательский шаблон для типа сообщения не работает Несколько учетных записей на 1 электронной почте – Multisite Пользовательские сообщения, затрагивающие последние сообщения Пользовательский тип сообщения с галереей изображений Рекомендуемый способ загрузки / вставки родительской и дочерней таблиц стилей для включения кэширования Добавить действие для удаления комментариев? Использование пользовательского режима темы WordPress для выбора шаблонов страниц, которые обновляют макет в предварительном просмотре Как пользователю WP_Query снизить количество запросов Не можете найти плагины в меню для wordpress 3.2? Как я могу сделать максимально возможную тему ванили без ничего, кроме сырого контента? Перебирать все теги и выходные сообщения в алфавитном списке

WordPress удалить подменю

Я нашел ответ на этот вопрос. Удалить меню и подменю 2 Ответы для моей проблемы, но есть способ немного изменить код, чтобы удалить подменю для всех ролей редактора. не только для одного пользователя? и есть ли способ улучшить этот код? Я использую версию wordpress 3.5.1

код, который я использую:

add_action('_admin_menu', 'remove_editor_submenu', 1); function remove_editor_submenu() { global $current_user; get_currentuserinfo(); if($current_user->user_login == 'username') { remove_action('admin_menu', '_add_themes_utility_last', 101); } } add_action('admin_init', 'remove_theme_submenus'); function remove_theme_submenus() { global $submenu, $current_user; get_currentuserinfo(); if($current_user->user_login == 'username') { unset($submenu['themes.php'][5]); unset($submenu['themes.php'][7]); unset($submenu['themes.php'][15]); } } 

Замените все вхождения $current_user->user_login == 'username' с помощью in_array('editor', $current_user->roles) . И вы можете удалить вызов get_currentuserinfo(); так как информация пользователя доступна из глобальной переменной $current_user .

Вот сводка кода:

 add_action('_admin_menu', 'remove_editor_submenu', 1); function remove_editor_submenu() { global $current_user; if(in_array('editor', $current_user->roles)) { remove_action('admin_menu', '_add_themes_utility_last', 101); } } add_action('admin_init', 'remove_theme_submenus'); function remove_theme_submenus() { global $submenu, $current_user; if(in_array('editor', $current_user->roles)) { unset($submenu['themes.php'][5]); unset($submenu['themes.php'][7]); unset($submenu['themes.php'][15]); } } с add_action('_admin_menu', 'remove_editor_submenu', 1); function remove_editor_submenu() { global $current_user; if(in_array('editor', $current_user->roles)) { remove_action('admin_menu', '_add_themes_utility_last', 101); } } add_action('admin_init', 'remove_theme_submenus'); function remove_theme_submenus() { global $submenu, $current_user; if(in_array('editor', $current_user->roles)) { unset($submenu['themes.php'][5]); unset($submenu['themes.php'][7]); unset($submenu['themes.php'][15]); } } с add_action('_admin_menu', 'remove_editor_submenu', 1); function remove_editor_submenu() { global $current_user; if(in_array('editor', $current_user->roles)) { remove_action('admin_menu', '_add_themes_utility_last', 101); } } add_action('admin_init', 'remove_theme_submenus'); function remove_theme_submenus() { global $submenu, $current_user; if(in_array('editor', $current_user->roles)) { unset($submenu['themes.php'][5]); unset($submenu['themes.php'][7]); unset($submenu['themes.php'][15]); } } с add_action('_admin_menu', 'remove_editor_submenu', 1); function remove_editor_submenu() { global $current_user; if(in_array('editor', $current_user->roles)) { remove_action('admin_menu', '_add_themes_utility_last', 101); } } add_action('admin_init', 'remove_theme_submenus'); function remove_theme_submenus() { global $submenu, $current_user; if(in_array('editor', $current_user->roles)) { unset($submenu['themes.php'][5]); unset($submenu['themes.php'][7]); unset($submenu['themes.php'][15]); } } 

Используйте user_can .

 if (user_can($current_user->ID,'editor')) { ... 

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

Вы говорите «роли редактора» – множественное число – но я предполагаю, что вы имеете в виду «всех пользователей, которые находятся в роли редактора».