J'ai trouvé une réponse à la question ici Supprimer les menus et sous-menus 2 Réponses à mon problème, mais existe-t-il un moyen de modifier un peu le code pour qu’il supprime les sous-menus de tous les rôles d’éditeur. pas seulement pour un utilisateur? et y a-t-il moyen d'améliorer ce code? J'utilise la version 3.5.1
de WordPress
code que j'utilise:
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]);
}
}
Remplacez toutes les occurrences de $current_user->user_login == 'username'
par in_array('editor', $current_user->roles)
. Et vous pouvez supprimer l'appel à get_currentuserinfo();
car les informations utilisateur sont disponibles à partir de la variable globale $current_user
.
Voici un échange de code:
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]);
}
}
Utilisez user_can
.
if (user_can($current_user->ID,'editor')) { ...
Je ne sais pas laquelle des deux fonctions dans lesquelles vous souhaitez entrer mais qui devrait être simple à remplacer ou à ajouter à votre condition if
existante.
Vous dites "rôles de rédacteur" - au pluriel - mais je suppose que vous voulez dire "tous les utilisateurs ayant le rôle de rédacteur".