Comment supprimer les éléments du menu d'administration de WordPress par programmation sans plugin
Publié: 2020-01-20Les menus du tableau de bord WordPress sont un moyen très utile de parcourir les différentes sections du tableau de bord d'administration, mais ils peuvent parfois être gênants ou indésirables. En particulier, lorsque vous utilisez WordPress comme système de gestion de contenu pour créer un site Web client, contrairement aux blogs, vous devez supprimer les éléments du menu d'administration WordPress qui ne sont pas nécessaires.
L'un des moyens les plus simples de supprimer les éléments du menu d'administration de WordPress consiste à utiliser les plugins disponibles gratuitement qui peuvent masquer les éléments du menu d'administration par rôle d'utilisateur ou de manière conditionnelle.
Quand ne pas supprimer les éléments du menu d'administration de WordPress à l'aide d'un plugin
Les inconvénients de l'utilisation de plugins pour supprimer les éléments du menu d'administration de WordPress peuvent être une dépendance excessive à l'égard des développeurs de plugins tiers pour des mises à jour cohérentes.
Risque lié aux plugins tiers
Dans ce cas, lorsque vous souhaitez prendre le contrôle des menus affichés dans votre tableau de bord WordPress sans utiliser de plugin, ce tutoriel est le meilleur guide pour vous.
Mises à jour constantes
Une autre raison de supprimer par programme les éléments du menu d'administration de WordPress est les mises à jour constantes que vous avez dans tous les plugins WordPress que vous installez.
Ces mises à jour sont importantes car elles améliorent l'expérience utilisateur, les performances et la sécurité, mais elles peuvent être trop lourdes, en particulier lorsque vous traitez avec un grand nombre de sites Web de clients.
Plusieurs menus d'administration de plugins
Lorsque vous avez autant de plugins installés sur votre site, la plupart sont livrés avec des menus d'administration et vous souhaiterez peut-être supprimer les menus car vous n'utilisez pas constamment les menus d'administration.
Dans cet article, je vais illustrer comment supprimer des éléments de menu WordPress sans utiliser de plugin. Pour que vous puissiez l'implémenter dans votre site WordPress, vous avez besoin d'un peu d'expérience dans l'édition de sites WordPress, en particulier l'ajout d'extraits de code au fichier de thème functions.php.
Supprimer les éléments du menu d'administration de WordPress par programme
J'aime commencer par un résumé rapide car cela facilite la tâche des lecteurs à la recherche d'une solution rapide dans un guide étape par étape. Voici les étapes à suivre pour supprimer les éléments du menu d'administration de WordPress.
- Connectez-vous à votre site WordPress et identifiez les éléments du menu d'administration que vous souhaitez supprimer
- Créez un crochet d'action qui s'accroche à l'événement admin_menu avec une fonction de rappel qui a la logique de supprimer les menus d'administration WordPress de votre tableau de bord.
- La fonction de rappel doit utiliser les fonctions WordPress remove_menu_page ou remove_submenu_page() pour supprimer chacun des éléments de menu d'administration ciblés. Par exemple, vous pouvez supprimer le menu des widgets du menu des thèmes en utilisant ce code
remove_submenu_page( 'themes.php', 'widgets.php');
ou supprimez le menu principal du tableau de bord avec ce code –remove_menu_page('index.php');
- Alternativement, vous pouvez utiliser la fonction php
unset()
et accéder aux valeurs du tableau de sous-menu global pour supprimer chacun des éléments de menu d'administration WordPress ciblés. - Ajoutez cet extrait de code au thème functions.php et mettez à jour les modifications. Cela supprimera avec succès les éléments du menu d'administration de WordPress sans utiliser de plugin.
- Vous pouvez également ajouter ce code à une fonction dans votre plugin personnalisé et il fonctionnera comme il fonctionne dans le thème functions.php
Comment supprimer les menus d'administration de WordPress sans plugin
Ce qui suit est l'approche détaillée étape par étape pour supprimer les éléments du menu d'administration de WordPress en ajoutant du code au lieu d'utiliser un autre plugin.
Identifier les éléments du menu d'administration Slug
Connectez-vous à votre tableau de bord WordPress et recherchez les éléments du menu d'administration que vous souhaitez supprimer. Comme vous pouvez le voir dans cet exemple, le menu principal du tableau de bord contient le slug index.php .
Ce slug est important car c'est l'un des paramètres que vous ajoutez à la fonction remove_submenu_page(), comme je vais l'illustrer sous peu.
Comprendre comment supprimer une page et supprimer des fonctions de page de sous-menu fonctionne
Supprimer la fonction de page
La fonction remove_menu_page est livrée avec un seul paramètre qui est le slug de page et elle supprime le menu d'administration de niveau supérieur. Le paramètre est une chaîne puisque c'est le slug de page qui est évidemment une chaîne et le code général devrait être le suivant :
remove_menu_page( string;$menu_slug;)
Supprimer la fonction de sous-page
La fonction remove_submenu_page est livrée avec deux paramètres, le premier qui est le slug du menu parent lorsque vous supprimez les sous-menus et le second du slug du sous-menu que vous souhaitez supprimer. Le code général devrait être le suivant :
remove_submenu_page( string $menu_slug, string $submenu_slug )
Créer un crochet d'action pour supprimer le menu Admin et/ou les éléments de sous-menu
Ce qui suit est un exemple d'un hook d'action qui s'accroche à l'événement admin_menu et a une fonction de rappel que nous avons nommée ' remove_admin_menu_items'
add_action('admin_menu', 'remove_admin_menu_items', 999);
Créez la fonction de rappel pour supprimer les éléments du menu Admin et/ou du sous-menu avec remove_submenu_page et remove_menu_page ()
Tout d'abord, dans la fonction de rappel, vous devez obtenir le tableau des menus globaux avec la variable globale $submenu si vous utilisez la fonction unset() .
Deuxièmement, vous ajoutez la fonction remove_submenu_page ou remove_menu_page () ciblant la page que vous souhaitez supprimer comme indiqué dans le code ci-dessous :
fonction remove_admin_menu_items() { remove_submenu_page( 'menu_slug', 'submenu_slug'); }
Ou en utilisant unset, vous pouvez avoir la fonction de rappel suivante
fonction remove_admin_menu_items() { global $submenu ; unset($submenu['slug de menu parent'][indice de tableau de sous-menu d'élément d'administration]); }
Exemple sur la façon de supprimer l'élément de menu d'administration des mises à jour
Lorsque vous vous connectez à votre tableau de bord WordPress, un élément de menu sur les mises à jour se trouve sous le menu principal du tableau de bord, comme indiqué dans l'image ci-dessous :
Je vais illustrer comment vous pouvez supprimer cet élément de menu d'administration en utilisant la méthode décrite ci-dessus. Tout d'abord, le slug du menu parent est index.php et le slug du menu des mises à jour est update-core.php
Supprimer le parent et le sous-menu de l'élément de menu de l'administrateur WordPress
Vous pouvez donc créer le crochet d'action et la fonction de rappel pour supprimer l'intégralité de l'élément de menu à l'aide de la fonction remove_menu_page() comme suit :
// Supprime l'élément du menu principal avec les sous-pages /sous-menus add_action('admin_menu', 'remove_admin_menu_items', 999); fonction remove_admin_menu_items() { remove_menu_page('index.php'); }
Cela supprimera tout le menu et les sous-menus comme indiqué dans l'image ci-dessous :
Supprimer uniquement les éléments de sous-menu WordPress
Vous pouvez créer le crochet d'action et la fonction de rappel pour supprimer l'élément de sous-menu à l'aide de la fonction remove_submenu_page comme suit :
//Supprime les sous-pages ou le sous-menu add_action('admin_menu', 'remove_admin_menu_items', 999); fonction remove_admin_menu_items() { remove_submenu_page('index.php','update-core.php' ); }
Cela supprimera le sous-menu spécifié dans le deuxième paramètre de la fonction remove_submenu_page, dans ce cas, nous avons spécifié comme ' update-core.php' et le résultat est comme indiqué dans l'image ci-dessous :
Utilisation de la fonction PHP Unset()
Nous pouvons également utiliser la fonction unset de PHP pour supprimer les éléments de sous-menu et dans ce cas, nous devons d'abord accéder au tableau global $submenu comme indiqué dans le code ci-dessous :
//ajoute le crochet d'action à l'événement admin_menu add_action('admin_menu', 'remove_admin_menu_items', 999); //fonction de rappel fonction remove_admin_menu_items() { // Tableau de menu d'administration-> La liste de tous les éléments du menu d'administration de WordPress se trouve dans ce tableau global $submenu ; // affiche le tableau à l'écran afin que nous puissions voir les éléments du menu d'administration par index print('<pre>'); print_r($submenu); print('<pre>'); // nous supprimons tout le reste affiché à l'écran afin de ne voir que le tableau des éléments du menu d'administration mourir(); }
Ce code s'empare du tableau de sous-menu global et nous l'imprimons pour afficher le tableau de tous les menus afin que nous puissions choisir l'index de chacun des éléments du menu d'administration, puis les supprimer à notre guise.
Dans ce code, vous pouvez voir l'utilisation des balises pre et de la fonction die() pour afficher le code dans un format lisible.
Supprimer l'élément de menu du sous-menu WordPress à l'aide de Unset
Ainsi, l'index du tableau pour le sous-menu update-core est 10 . Nous pouvons donc continuer et utiliser la fonction unset() comme suit :
// Supprime l'élément du menu principal avec les sous-pages en utilisant unset add_action('admin_menu', 'remove_admin_menu_items', 999); fonction remove_admin_menu_items() { global $submenu ; unset($submenu['index.php'][0]); // supprimer le menu de niveau supérieur index.php (menu tableau de bord - menu Accueil) unset($submenu['index.php'][10]); // supprimer le sous-menu update-core.php (menu mises à jour) }
Les résultats seront les mêmes qu'en utilisant la fonction WordPress remove_submenu_page.
Supprimer l'élément du menu d'administration de WordPress à l'aide de Unset
Nous pouvons également supprimer la page de niveau supérieur et le sous-menu tous ensemble en utilisant la fonction unset ciblant chacune de ces pages :
Le code devrait être le suivant :
//. Supprimer l'élément de sous-menu principal en utilisant unset add_action('admin_menu', 'remove_admin_menu_items', 999); fonction remove_admin_menu_items() { global $submenu ; unset($submenu['index.php'][10]); }
Le résultat sera de supprimer l'une ou l'autre des pages comme nous l'avons désactivé dans le code :
Emballer
Dans cet article, nous avons largement couvert les deux principales façons que vous pouvez utiliser pour supprimer les éléments du menu d'administration de WordPress et vous nettoyez votre tableau de bord WordPress. Si vous êtes un développeur WordPress, vous pouvez réutiliser ce code et le copier facilement en consultant mon essentiel et vous pouvez me suivre sur GitHub pour d'autres mises à jour futures. J'ai également partagé plusieurs autres extraits ici - WP-Snippets . J'espère que vous pouvez maintenant supprimer les éléments d'administration WordPress que vous ne voulez pas de votre menu.