web-dev-qa-db-fra.com

Comment utiliser une page comme page d'accueil pour empêcher la navigation de définir des liens de page et de page actifs?

Disons que nous avons un site avec quatre éléments dans un menu géré, correspondant à des pages:

Accueil | Foo | Bar | Baz

L'élément "Accueil" est un lien personnalisé pointant vers "/".
Et nous voulons que le contenu "Bar" soit affiché sur la page d'accueil. Dans Paramètres, nous le spécifions pour la page d'accueil.

Lors de la visite de la page d'accueil, "Home" et "Bar" ont tous deux des classes actives, ce qui donne un style (.current-menu-item / .current_page_item) comme:

Accueil | Foo | Bar | Baz

… Quand il semble raisonnable de s'attendre à ce que seul Home soit mis en évidence.

Ai-je commis une erreur ici ou s'agit-il vraiment d'un comportement déréglé (ou du moins sous-optimal)? Et y a-t-il un moyen relativement indolore de le corriger en créant des modèles? Je peux facilement annuler le style avec un peu de CSS par page, mais c'est une solution de contournement au problème actuel et je suis curieux de savoir si quelque chose me manque dans la thématisation.

1
Su'

C’est un comportement précis et précis, il n’est tout simplement pas souhaitable pour votre cas d’utilisation spécifique.

En d'autres termes, lorsque vous cliquez sur barre, votre logique home ne devrait pas être actif, mais ce le sera, car home et bar sont la même page, avec la même URL. Ainsi, ce que vous voulez est ambigu.

Au lieu de cela, je vous recommande de télécharger et d'installer le plugin Spots. Créez un nouveau spot avec le contenu de la page de barres, puis insérez-le dans la page de barres. Enfin, créez une page appelée Accueil et définissez-la comme page de garde, et hop, presto, bar! Et le menu fonctionne comme vous le souhaitez, mais ils affichent tous les deux le contenu souhaité.

1
Tom J Nowell