Un visiteur public, client, éditeur et administrateur n’ont que rarement besoin de la même navigation. Afficher chaque destination à tout le monde crée un encombrement; maintenir un menu séparé pour chaque état crée un travail dupliqué.
Menus WordPress conditionnels par rôle utilisateur peuvent garder la navigation pertinente, mais les règles de visibilité ne doivent pas être confondues avec la sécurité. Cacher un élément de menu n’empêche pas l’accès direct à son URL.
Ce guide explique comment les agences peuvent concevoir des conditions de menu maintenables pour les utilisateurs déconnectés, les utilisateurs connectés et les rôles WordPress sélectionnés.
Séparer la navigation de l’autorisation
Les rôles WordPress regroupent des capacités qui déterminent ce que les utilisateurs connectés peuvent faire. Le code d’application approprié doit vérifier la capacité requise avant d’exposer des données ou des actions protégées.
Une règle de menu change si un lien est affiché. Cela améliore l’orientation et réduit les choix non pertinents. Ce ne doit pas être le seul contrôle protégeant un compte, un rapport, un téléchargement ou une fonction d’administration.
Utilisez les deux couches :
- condition de navigation pour la pertinence;
- vérification de capacité ou d’accès côté serveur pour la sécurité.
Cartographier les audiences avant de créer des règles
Listez les véritables états des visiteurs, par exemple :
- visiteur déconnecté;
- client ou abonné connecté;
- contributeur ou auteur;
- éditeur;
- administrateur;
- rôle d’adhésion ou de commerce personnalisé.
Pour chaque destination, enregistrez qui devrait voir le lien et qui est autorisé à ouvrir la destination.
Ne supposez pas que les noms de rôles forment une simple hiérarchie. WordPress décrit les rôles comme des collections de responsabilités et de capacités; les rôles personnalisés peuvent ne pas suivre l’ordre par défaut.
Utiliser une hiérarchie de règles simple
Préférez la règle la moins complexe qui fonctionne :
- Tous les utilisateurs pour une navigation universelle.
- Déconnectés uniquement pour les routes de connexion, d’inscription ou de conversion publique.
- Connectés uniquement pour la navigation au niveau du compte partagée par les utilisateurs authentifiés.
- Rôles spécifiques où la destination sert une responsabilité définie.
- Exclure des rôles sélectionnés uniquement lorsque l’exclusion est plus facile à maintenir qu’une liste positive.

Les règles positives sont généralement plus faciles à expliquer. “Afficher aux clients et aux éditeurs” est plus clair qu’une longue liste d’exclusion dont les futurs rôles personnalisés peuvent se comporter de manière inattendue.
Modèles de navigation courants
Connexion et compte
Afficher “Se connecter” aux visiteurs déconnectés et “Mon compte” ou “Se déconnecter” aux utilisateurs authentifiés.
Espace de travail éditorial
Afficher les raccourcis de gestion de contenu uniquement aux rôles éditoriaux appropriés, tandis que la destination vérifie toujours les capacités.
Ressources client
Afficher la navigation du compte, de la commande ou du téléchargement au rôle client pertinent. Protégez les données sous-jacentes de manière indépendante.
Administration de l’agence et du client
Gardez les liens opérationnels hors de la navigation ordinaire des clients et évitez de donner le rôle d’administrateur simplement pour rendre un lien visible.
Éviter la duplication des règles
Avant d’ajouter une nouvelle condition, vérifiez si le menu hérite déjà de la logique du thème, du plugin d’adhésion, du système de commerce ou du code personnalisé.
Plusieurs systèmes de visibilité peuvent entrer en conflit et rendre le dépannage difficile. Choisissez un propriétaire pour chaque condition d’élément de menu et documentez les exceptions.
Prendre en compte la mise en cache des pages
Certaines mises en cache de pages complètes stockent différentes versions pour les utilisateurs connectés et déconnectés; d’autres contournent la mise en cache pour les sessions authentifiées. Un cache mal configuré peut exposer une navigation obsolète ou afficher le mauvais état du menu même lorsque la destination sous-jacente reste protégée.
Après avoir changé des éléments conditionnels :
- purger les caches pertinents;
- tester une session déconnectée propre;
- tester des rôles connectés représentatifs;
- passer de la connexion à la déconnexion sans réutiliser un ancien instantané de page;
- vérifier les variantes de menu mobile et de bureau;
- confirmer que la destination protégée vérifie toujours l’autorisation.
Traitez une navigation mise en cache incorrecte comme un défaut d’expérience utilisateur et enquêtez sur les règles de variation de cache plutôt que d’affaiblir le contrôle d’accès.
Tester chaque état
Créez une matrice :
| État | Éléments visibles attendus | Destinations protégées testées? |
|---|---|---|
| Déconnecté | Routes publiques et de connexion | Oui |
| Abonné/client | Routes de compte et client | Oui |
| Éditeur | Routes éditoriales | Oui |
| Administrateur | Routes opérationnelles | Oui |
| Rôle personnalisé | Routes explicitement approuvées | Oui |
Testez avec de vrais comptes non administrateurs. Les administrateurs contournent souvent les restrictions ou voient des contrôles que les utilisateurs ordinaires ne voient pas.
Testez également :
- rendus de menu de bureau et mobile;
- navigation au clavier et mise au point;
- mise en cache pour les pages connectées et déconnectées;
- étiquettes de menu traduites et destinations;
- changements après connexion et déconnexion;
- accès direct à l’URL pour les utilisateurs non autorisés.
Le menu peut s’afficher différemment sur mobile, mais WpAgencyKit Les règles de visibilité des Conditions de Menu sont basées sur l’état de connexion et les rôles. L’aperçu des appareils et le comportement modal mobile ne devraient pas être décrits comme une sécurité ou une visibilité de menu basée sur l’appareil.
Utiliser les modaux avec précaution
Ouvrir une page ou un article WordPress dans un modal peut garder un utilisateur dans le contexte. Les formulaires dynamiques ou JavaScript complexes nécessitent un comportement en direct, tandis que le contenu statique peut être adapté au pré-rendu.
Les sites distants empêchent souvent l’intégration d’iframe par le biais d’en-têtes de sécurité. Utilisez une route normale de même page ou un nouvel onglet lorsque la destination ne peut pas être intégrée de manière fiable.
Les vérifications d’accessibilité doivent inclure l’entrée de mise au point, le comportement d’échappement/fermeture, l’étiquetage, l’opération au clavier et la restauration de la mise au point.
Configurer WpAgencyKit Conditions de Menu
WpAgencyKit Conditions de Menu ajoute des contrôles par élément de menu pour :
- tous les utilisateurs;
- utilisateurs connectés;
- utilisateurs déconnectés;
- rôles sélectionnés;
- exclusion de rôles sélectionnés;
- comportement d’ouverture de même page, nouvel onglet ou modal lorsque cela est approprié.
Utilisez ces fonctionnalités pour réduire les menus dupliqués tout en conservant les vérifications de capacité WordPress sur les destinations protégées.
Liste de vérification de maintenance
- réviser les éléments conditionnels après avoir ajouté ou supprimé des rôles;
- tester avec des comptes utilisateurs représentatifs;
- confirmer que l’accès direct non autorisé est bloqué;
- réviser le comportement de mise en cache;
- vérifier la navigation mobile et au clavier;
- mettre à jour les étiquettes de menu traduites et les URL;
- documenter quel système possède chaque règle de visibilité;
- supprimer les conditions pour les destinations retirées;
- inclure des tests de navigation dans les versions d’adhésion ou de compte.
Rendre la navigation pertinente sans affaiblir le contrôle d’accès
Les menus conditionnels sont un outil d’expérience utilisateur. Ils aident chaque audience à trouver le bon chemin et réduisent le besoin de structures de navigation dupliquées.
Gardez les règles simples, testez les véritables états des utilisateurs et appliquez la sécurité à la destination. Lorsque ces responsabilités restent séparées, les agences peuvent personnaliser la navigation sans créer de fausse protection.