J'essaie de cacher une certaine quantité de menus pour un client. En ce moment, j'utilise le code suivant et il fait bien son travail, mais il le supprime pour tout le monde, autant que je sache. Comme dans tous les rôles.
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');
Quelle est la ligne que je voudrais utiliser pour avoir cet appel sur seulement un éditeur ou un auteur, etc.?
Merci beaucoup
vous pouvez le faire, cela masque le menu (c'est tout, ils peuvent toujours aller à l'URL du menu s'ils le savent), en fonction des possibilités. Vous pouvez facilement le changer pour un rôle ou même un nom d'utilisateur.
Je pense que le rôle d'utilisateur est "user_role" et pour le nom d'utilisateur, c'est "user_login". L'exemple ci-dessous utilise "user_level" sur 10, ce qui signifie tout le monde sauf l'administrateur.
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');
Utilisez la fonction current_user_can()
pour construire ce tableau $restricted
en plusieurs morceaux avant de le transmettre à travers cette boucle non définie. Pour que cela fonctionne, vous devrez utiliser des fonctionnalités et non des noms de rôle.
Si cela ne vous dérange pas d'utiliser un plugin au lieu d'un code en dur, essayez d'utiliser:
http://wordpress.org/extend/plugins/adminimize/
Je l’utilise pour tous les sites que je crée pour personnaliser ce que les différents rôles voient, cela vous donne beaucoup d’options et pas seulement dans les menus.