Dans le cadre d'un projet WordPress, j'aimerais cacher (supprimer) un menu particulier (ou plusieurs menus à l'avenir) dans la zone du tableau de bord de WP (la zone d'administration) ;
Par exemple : Menu Postes;
Comment faire ?
Je préférerais utiliser un code PHP comme function car j'ai un thème enfant et je peux modifier le fichier functions.php.
Remerciements
P.s. Ci-dessous, une capture d'écran du menu wordpress que je veux cacher :

Dans le thème WordPress de votre enfant, dans le fichier functions.php, ajoutez le code suivant :
/* Remove menus from the WordPress dashboard*/
function wpdocs_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
remove_menu_page('edit.php?post_type=project'); //Projects
}
add_action('admin_menu', 'wpdocs_remove_menus');
J'ai utilisé le menu_administrateur Crochet WordPress (ligne #16) ;
Dans votre cas, vous pouvez voir le code sur la ligne #4 - pour le menu Posts.
Vous pouvez également lire et voir ce lien
Pour les menus qui sont PAS liées au noyau WordPress (Pages, Posts, etc.), vous pouvez également utiliser la fonction admin_init (à la ligne 8 ci-dessous) ;
Dans ce cas, vous devez taper le dossier ou le fichier du plugin ou du thème ;
Voir la capture d'écran de ce que je veux dire (voir la ligne 4 pour le plugin Yoast WP) :

Ici, je me cache :
- Menu du thème Divi
- WP Yoast SEO menu
- Plugin journal d'activité
Voici l'exemple (voir les commentaires dans le code ci-dessous):
/* Hide plugin/theme/menu in the WordPress dashboard area */
function wpdocs_remove_menusTwo() {
remove_menu_page('et_divi_options'); //Divi WP Theme
remove_menu_page('wpseo_dashboard'); //Yoast SEO WP Plugin
remove_menu_page('activity_log_page'); //Activity Log WP Plugin
}
add_action('admin_init', 'wpdocs_remove_menusTwo');
BTW, si vous souhaitez qu'un utilisateur particulier (Dans mon cas, il s'agit d'un administrateur avec id=1) NE PAS ÊTRE CAPABLE pour voir un menu (généré par un plugin), voir le code ci-dessous (voir ligne #3) :
/* Hide plugin/theme/menu in the WordPress dashboard area */
function wpdocs_remove_menusTwo() {
if (get_current_user_id() == 1) {
remove_menu_page('activity_log_page'); //Activity Log WP Plugin
}
}
add_action('admin_init', 'wpdocs_remove_menusTwo');
