Gérer les Restrictions d’Accès et de Menus dans WordPress : Expérience et Solutions

Rédacteur : LaRedac
22 mars 2025

Dans cette analyse approfondie, nous avons exploré plusieurs méthodes pour contrôler l’affichage et l’accès aux menus d’administration de WordPress, en particulier pour les rôles d’éditeur, tout en préservant l’accessibilité d’UpdraftPlus. Voici ce que nous avons testé et ce qui a fonctionné ou non.


1. Problématique Initiale : White Label CMS et Adminimize

Problème rencontré

L’utilisation du plugin White Label CMS a empêché les éditeurs d’accéder à UpdraftPlus, même lorsque le menu était visiblement activé dans les paramètres.

De même, Adminimize a causé un problème similaire : bien que le menu d’UpdraftPlus soit présent, l’accès était bloqué avec un message « Désolé, vous n’avez pas l’autorisation d’accéder à cette page. »

Solutions testées

  1. Accorder la capacité manage_options aux éditeurs via User Role Editor.
    • Résultat : Le menu est devenu visible, mais l’accès était toujours restreint.
  2. Modification du slug de la page UpdraftPlus pour tester une autre capacité (edit_pages)
    • Résultat : Toujours inaccessible pour les éditeurs.
  3. Désactivation de White Label CMS ou Adminimize
    • Résultat : UpdraftPlus redevenait accessible, prouvant que le blocage venait bien de ces plugins.

Conclusion

Ces plugins appliquent des restrictions strictes sur les menus et les pages d’administration, parfois au-delà des capacités attribuées aux rôles. Il n’existe pas d’option simple pour débloquer UpdraftPlus sans désactiver le plugin entier.


2. Alternative : Masquer les Menus via du Code PHP

Puisque White Label CMS et Adminimize ne permettaient pas de tout configurer comme voulu, une solution personnalisée en PHP a été testée.

Mise en place

Nous avons ajouté du code dans functions.php pour :

  • Masquer des menus spécifiques pour les utilisateurs ne disposant pas d’un ID défini.
  • Empêcher l’accès direct à certaines pages d’administration via leur URL.

Code utilisé pour masquer les menus

function custom_hide_admin_menus() {
    $allowed_user_id = 15; // ID de l'utilisateur admin

    if (get_current_user_id() != $allowed_user_id) {
        remove_menu_page('cookie-law-info'); // CookieYes
        remove_menu_page('ultimate-member'); // Ultimate Member
        remove_menu_page('simple_history_page'); // Simple History
        remove_menu_page('edit.php'); // Articles
        remove_menu_page('edit.php?post_type=page'); // Pages
        remove_menu_page('upload.php'); // Médias
        remove_menu_page('edit-comments.php'); // Commentaires
        remove_menu_page('themes.php'); // Apparence
        remove_menu_page('plugins.php'); // Extensions
        remove_menu_page('users.php'); // Comptes
        remove_menu_page('tools.php'); // Outils
        remove_menu_page('options-general.php'); // Réglages
        remove_menu_page('wfls-options'); // Wordfence
        remove_menu_page('et_divi_options'); // Divi
        remove_menu_page('forminator'); // Forminator
        remove_menu_page('loco-translate'); // Loco Translate
    }
}
add_action('admin_menu', 'custom_hide_admin_menus', 999);

Code pour bloquer l’accès direct aux pages admin

function block_direct_admin_pages() {
    if (!current_user_can('manage_options')) {
        $blocked_pages = array('cookie-law-info', 'simple_history_admin_menu_page', 'ultimatemember');
        if (isset($_GET['page']) && in_array($_GET['page'], $blocked_pages)) {
            wp_die('🚫 Accès interdit.');
        }
    }
}
add_action('admin_init', 'block_direct_admin_pages');

Résultat

Les menus ont été correctement masqués.
Les tentatives d’accès direct à ces pages renvoient une erreur.
🚫 Certains plugins peuvent contourner ces restrictions en utilisant des scripts JavaScript pour réinsérer les menus.

Conclusion

Cette méthode est une alternative efficace à White Label CMS et Adminimize si l’objectif est de masquer des menus précis pour certains utilisateurs sans dépendre d’un plugin tiers.


3. Contactez-nous pour une personnalisation avancée

Si vous avez besoin d’une personnalisation avancée pour gérer les accès à l’administration de WordPress, nous pouvons vous aider à :

  • Créer des règles de restrictions sur mesure.
  • Gérer les menus et les permissions avec précision.
  • Résoudre les conflits entre plugins de sécurité et de personnalisation.

N’hésitez pas à nous contacter pour une solution adaptée à vos besoins.

0 commentaires

Soumettre un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Voir aussi…

Merci, votre message a bien été envoyé

Nous avons bien reçu votre demande. Nous revenons vers vous au plus vite avec une réponse claire et des premières orientations.

Si votre demande est urgente

contactez-nous par message sur WhatsApp.

WhatsApp