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

Rédacteur : LaRedac
21 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.


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.


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
    }
}
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.


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