Masquer les menus d’administration dans le back office de WordPress

Certains menus du tableau d’administration de WordPress ne présentent aucune utilité pour votre projet et / ou votre client ? Il existe une astuce simple et rapide permettant de masquer à la demande les menus de votre choix et ce, sans modifier un seul fichier du cœur de WordPress. Une méthode bien plus propre qu’un simple masquage via le CSS.

Une fois n’est pas coutume, nous allons intervenir dans le fichier functions.php de votre thème. Rendez-vous dans le menu Apparence puis Éditeur. Dans la liste de droite, cliquez sur le fichier concerné.

Masquer les menus parents de l’administration de WordPress

Ajoutez ensuite les lignes de code suivante pour désactiver les menus de votre choix contenus dans la variable $restricted :

function remove_menu_items() {
 global $menu;
 $restricted = array(__('Links'), __('Comments'), __('Media'),
 __('Plugins'), __('Tools'), __('Users'));
 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_menu_items');

L’exemple peut donc facilement être personnalisé en ajoutant des valeurs ou en supprimant certaines. Un exemple pour masquer les articles et les pages – utile si vous n’utilisez que des custom post types :

function remove_menu_items() {
  global $menu;
  $restricted = array(__('Posts'), __('Pages'));
  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_menu_items');

Masquer les sous-menus de l’administration de WordPress

add_action('admin_menu', 'remove_menu_items');
function remove_submenus() {
 global $submenu;
 unset($submenu['index.php'][10]); // Supprimer 'Mises à jour'.
 unset($submenu['themes.php'][5]); // Supprimer 'Thèmes'.
 unset($submenu['options-general.php'][15]); // Supprimer 'Ecriture'.
 unset($submenu['options-general.php'][25]); // Supprimer 'Commentaires'.
 unset($submenu['edit.php'][16]); // Supprimer 'Tags'.
 }
add_action('admin_menu', 'remove_submenus');

Comme vous pouvez le remarquer des numéros figurent entre les crochets. Ces numéros sont déterminés par des fichiers issus du cœur de WordPress. Il s’agit du fichier menu.php dans le dossier /wp-admin. Il suffit d’identifier le fichier PHP et son numéro associé pour masquer les éléments de sous-menus de votre choix.

WordPress démontre une fois sa flexibilité pour créer des projets Web 100% sur-mesure.

Crédits photo : Dogra