Cheatsheet
Supprimer des entrées du menu de l'admin WordPress
Certaines installations de WordPress n’utilisent pas telle ou telle fonctionnalité, ou alors vous ne souhaitez pas en laisser certaines accessibles aux utilisateurs finaux.
Pourquoi donc laisser l’entrée correspondante dans le menu ? Certains thèmes ne sont par exemple pas prévu pour servir de blog, dans un tel cas, autant faire disparaître le bouton en question du menu.
# la fonction est remove_menu_page
# chaque entrée du menu possède son paramètre
# index.php' ==> Dashboard
# jetpack' ==> Jetpack*
# edit.php' ==> Articles
# upload.php' ==> Médias
# edit.php?post_type=page' ==> Pages
# edit-comments.php' ==> Commentaires
# themes.php' ==> Apparence
# plugins.php' ==> Extensions
# users.php' ==> Utilisateurs
# tools.php' ==> Outils
# options-general.php' ==> Réglages
# Supprimons donc les articles
add_action('admin_menu', function () {
remove_menu_page('edit.php');
// Sachez que pour lister toutes les entrées disponibles
// Vous pouvez faire un print de $GLOBALS['menu']
echo '<pre>' . print_r($GLOBALS['menu'], true) . '</pre>';
});
Vous appelez remove_menu_page
autant de fois que nécessaire. Par ailleurs, vous pouvez aussi ne supprimer les entrées que pour certains utilisateurs, ou tout laisser pour l’admin principal, il suffit pour cela de return
avant d’appeler remove_menu_page
.
On pourra par exemple tester :
- via l’id utilisateur
get_current_user_id
, - en vérifiant si l’utilisateur est admin
is_user_admin
, - ou en vérifiant si l’utilisateur possède certains droits
has_cap
.
Commentaires
Rejoignez la discussion !