web-dev-qa-db-fra.com

Comment masquer le menu sur l'administrateur WordPress

Je souhaite masquer certains menus dans le panneau d'administration: Apparence, Plug-ins et Outils.

Comment le cacher sans plugin?

Et comment puis-je les masquer plus tard facilement?

2
Lena Queen

Vous pouvez le faire avec remove_menu_page . Ajoutez le slug de menu approprié dans votre functions.php de votre thème ou de votre plugin.

<?php remove_menu_page( $menu_slug ) ?>

Notez que les utilisateurs peuvent toujours accéder à ces menus via un lien direct. Si vous souhaitez empêcher un utilisateur d'accéder à un menu, vous devez définir un rôle d'utilisateur et vous assurer qu'il ne dispose pas des fonctionnalités pertinentes .

Voici une liste d’exemples de slug pour les menus inclus dans une nouvelle installation de WordPress.

<?php
function remove_menus(){  

  remove_menu_page( 'index.php' );                  //Dashboard  
  remove_menu_page( 'edit.php' );                   //Posts  
  remove_menu_page( 'upload.php' );                 //Media  
  remove_menu_page( 'edit.php?post_type=page' );    //Pages  
  remove_menu_page( 'edit-comments.php' );          //Comments  
  remove_menu_page( 'themes.php' );                 //Appearance  
  remove_menu_page( 'plugins.php' );                //Plugins  
  remove_menu_page( 'users.php' );                  //Users  
  remove_menu_page( 'tools.php' );                  //Tools  
  remove_menu_page( 'options-general.php' );        //Settings  

}  
add_action( 'admin_menu', 'remove_menus' );  
?>
4
iyrin
1
Soeb Safi

Ceci est une belle partie du code de la fonctionnalité principale de Bill Erickson plugin.

/**
 * Remove Menu Items
 * @since 1.0.0
 *
 * Remove unused menu items by adding them to the array.
 * See the commented list of menu items for reference.
 *
 */
function ni_remove_menus () {
    global $menu;

    // Example:
    //$restricted = array(__('Dashboard'), __('Posts'), __('Media'), __('Links'), __('Pages'), __('Appearance'), __('Tools'), __('Users'), __('Settings'), __('Comments'), __('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', 'ni_remove_menus' );

Décommentez le tableau restreint et incluez les éléments de menu que vous souhaitez masquer. L'exemple contient tous les éléments de menu pour référence.

0
sagalbot