Diviser un site en 2 parties, avec un menu différent pour chaque partie (Créer un compte)

  • WordPress :5.8
  • Statut : non résolu
15 sujets de 16 à 30 (sur un total de 54)
  • Auteur
    Messages
  • #2386013
    ferman
    Modérateur
    Maître WordPress
    7136 contributions

    Bonjour,

    Je ne comprends pas le système de @fgerman, cela fonctionne certainement (je n’en doute pas, vu le mal qu’il se donne 😉 )…

    Eh oui j’aime aider mon prochain.

    …mais cela me semble bien compliqué.

    Si @flobogo trouve que c’est trop compliqué c’est que ça l’est. Je vous propose donc une solution plus simple avec moins de code. Vous pourrez choisir en attendant que @flobogo vous propose éventuellement sa propre solution. (« abondance de biens ne nuit pas » 🙂 ).

    Pour la solution ci-dessous, le plus drôle c’est qu’elle est déjà implémentée sur mon site! le bouton connexion apparait quel que soit  le menu mais je n’avais pas fait le rapprochement. Comme quoi quand on a le nez dans le guidon…

    Donc, la méthode est la suivante: On crée trois menus. Le menu principal « categorie1 et categorie2 » ne change pas. On fait ensuite deux menus « menu page1 » et « menu page2 » qui contiendront les pages accueil, grid-1, grid-2, et grid-3 pour le premier et accueil, grid-4, grid-5, et grid-6 pour le deuxième.

    Avec « conditional menus » on choisit d’afficher le menu principal uniquement sur la page d’accueil, le deuxième menu sur la categorie « page1 » et les pages correspondant à cette catégorie, le troisième sur la categorie « page2 » et les pages correspondant à cette catégorie.
    Voila pour les menus. Et la page témoignages? On va l’ajouter hors menu. avec la fonction suivante:

    function specialitem($items, $args){
    $newitems = $items;
    $newitems .= '<li class="temoignages"><a title="temoignages" href="URL_DE_LA_PAGE_TEMOIGNAGES">TEMOIGNAGES</a></li>';
    return $newitems;
    }
    add_filter('wp_nav_menu_items', 'specialitem',10,2);

    « temoignages  » apparaîtra au menu quel que soit le menu affiché donc sur toutes les pages. C’est nettement plus simple et surtout il n’y a pas besoin de revenir modifier le code si vous ajoutez ou enlevez des pages au menu. On est possible d’ enlever « temoignages » sur certaines pages (par exemple la page d’accueil) . Il y a beaucoup de variantes possibles.

    Au fait, on ne sait pas combien de menus votre  thème autorise. C’est variable. Mon thème en autorise trois. Si c’est moins pour le votre, il faudra légèrement modifier la méthode.

     

     

     

    • Cette réponse a été modifiée le il y a 3 années par ferman.
    • Cette réponse a été modifiée le il y a 3 années par ferman.
    • Cette réponse a été modifiée le il y a 3 années par ferman.
    #2386028
    Flobogo
    Modérateur
    Maître WordPress
    20407 contributions

    Non, rien de mieux à proposer. Il faudrait que je teste Conditional Menus, mais si c’est un système de cases à cocher avec possibilité d’exclusion, ça devrait faire le job.

    #2386062
    kellr1388
    Participant
    Initié WordPress
    30 contributions

    Merci encore pour vos réponses claires et précises ça fait plaisir !
    L’idée qui me semblait idéale était celle de voir sur la page témoignage le menu approprié en fonction de la page précédente, mais après avoir essayé, cela paraît  complexe pour mes maigres capacités ! Même avec de la bonne volonté !

    Flobogo : le soucis avec cette option c’est que ça m’oblige à faire deux menus apparents (comme ton ami) et je préfèrerai en avoir qu’un. Je ne souhaite pas de menu qui permettrai de choisir entre distanciel et présentiel sur chaque page, le choix se ferai uniquement sur la page d’accueil. Je ne cible pas les mêmes personnes donc aucun risque qu’elles veuillent transiter de l’un à l’autre, et puis deux menus peuvent créer de la confusion (j’ai plus d’onglets que ton ami..!)

    Ferman : “temoignages ” apparaîtra au menu quel que soit le menu affiché donc sur toutes les pages.
    J’ai bien noté tout ce que tu expliques dans ton dernier message et cela me semble très cohérent, je vais donc suivre tout ça pour organiser mon site, merci ! Mais dans cette dernière méthode que tu m’expliques,  je n’ai pas bien compris quel menu sera visible de la page témoignage?

    Je réalise que la meilleure option, c’est peut-être que sur la page « Témoignages » apparaisse un menu spécial avec : « réserver une séance »,  et « retour en arrière » uniquement. Cela permettrait un retour dans le bon menu pour celui qui veut en savoir plus, ou alors de basculer vers la réservation si la personne est convaincue sans avoir à faire d’autres étapes. Qu’en pensez-vous? Est-ce possible d’avoir un onglet au menu permettant un retour en arrière ?

    Merci encore et bonne fin de week-end !

    #2386065
    ferman
    Modérateur
    Maître WordPress
    7136 contributions

    Mais dans cette dernière méthode que tu m’expliques, je n’ai pas bien compris quel menu sera visible de la page témoignage?

    La page témoignage ne modifie pas le menu d’origine. Si la page affiche un menu 1 (+ « temoignages ») appuyer sur témoignages ouvre cette page en conservant le même menu. Si c’est un menu 2, elle affichera ce deuxième menu. C’est ce que vous souhaitez.

    Est-ce possible d’avoir un onglet au menu permettant un retour en arrière ?

    Oui, c’est simple mais c’est équivalent à faire page précédente et ce n’est pas ce que vous vouliez. De toute façon, la methode est la même

    je souhaiterai que la personne qui accède à la page témoignage puisse ensuite accéder aux autres onglets du menu par lequel elle est arrivée (présentiel ou distanciel) si elle le souhaite et ne se retrouve pas forcée de cliquer sur ”page précédente”

    De toute façon, la méthode est la même (ajouter un élément au menu), c’est seulement la fonction de cet élément que l’on change.

    • Cette réponse a été modifiée le il y a 3 années par ferman.
    • Cette réponse a été modifiée le il y a 3 années par ferman.
    #2386084
    Flobogo
    Modérateur
    Maître WordPress
    20407 contributions

    Flobogo : le soucis avec cette option c’est que ça m’oblige à faire deux menus apparents (comme ton ami)

    Non, pas du tout : c’était un choix de sa part, car il ne voulait pas de sous-menu déroulant. Mais avec l’extension, on peut mettre des conditions d’affichage sur n’importe quel menu, que ce soit celui d’en haut, ou le 2ème, ou un menu unique.

    #2386112
    kellr1388
    Participant
    Initié WordPress
    30 contributions

    La page témoignage ne modifie pas le menu d’origine. Si la page affiche un menu 1 (+ “temoignages”) appuyer sur témoignages ouvre cette page en conservant le même menu. Si c’est un menu 2, elle affichera ce deuxième menu. C’est ce que vous souhaitez.
    Super! Je n’avais pas compris que cette méthode m’apportait cette solution aussi, je vais la mettre en place alors, merci !

    Flobogo : c’est bon à savoir ! Je vais mettre sérieusement en place tout ça, je pense que grâce à votre aide à tous les deux je vais faire quelque chose de bien, merci encore !

    #2386797
    kellr1388
    Participant
    Initié WordPress
    30 contributions

    Je suis en pleine mise en place de tous vos conseils sur mon site internet, et j’arrive au niveau du codage. Deux petites questions :

     Et la page témoignages? On va l’ajouter hors menu. avec la fonction suivante:

    • Ou exactement dois-je ajouter cette fonction ?!
    •  J’ai réalisé que la page témoignages n’est pas la seule que je souhaiterai avoir sur les deux menus, il y en a une dizaine (« qui suis-je? » ; « déroulement d’une séance » etc). La méthode peut être se répliquer autant sans causer de soucis sur le site ?
      Merci encore !!
    #2386798
    ferman
    Modérateur
    Maître WordPress
    7136 contributions

    Comme dit précédemment

    « La fonction est à mettre de préférence dans le fichier “functions.php” d’un thème enfant. Si vous n’en avez pas c’est facile à créer avec l’extension “Child theme configurator“. Si vous ne voulez pas en créer vous pouvez utiliser l’extension “my custom functions“. C’est simple mais lisez les FAQ et surtout ça: “Q. What to do if this plugin crashed the website?” qui vous dit comment rétablir la situation en cas de problème (pas grave et facilement réparable  par FTP). Il vaut mieux éviter de mettre des codes dans functions.php du thème parent: ce sera effacé lors de la prochaine mise à jour du thème. Bien sûr on peut remettre le code après mais c’est un peu pénible, surtout si vous envisagez de mettre d’autres codes dans l’avenir.« 

    Pour mettre plus de pages c’est la même chose avec plus de lignes (ci dessous pour trois pages):

    function specialitem($items, $args){
    $newitems = $items;
    $newitems .= '<li class="temoignages"><a title="bouton-1" href="/URL page qui suis-je">qui suis-je?</a></li>';
    $newitems .= '<li class="temoignages"><a title="bouton-2" href="/URL page déroulement d’une séance">déroulement d’une séance</a></li>';
    $newitems .= '<li class="temoignages"><a title="bouton-3" href="/URL page témoignages">témoignages</a></li>';
    return $newitems;
    }
    add_filter('wp_nav_menu_items', 'specialitem',10,2);

    Vous pouvez ajouter 10 lignes sans problème , à part: 1. on multiplie les risques de faire une erreur de « copier/coller » 🙂 , 2. le menu risque d’être un peu encombré . On peut faire un peu de mise en page avec des CSS si nécessaire. Vous verrez.

    Vous modifier le nom de la classe comme vous voulez; pareil pour le titre et bien sûr pour le nom qui s’affiche

    • Cette réponse a été modifiée le il y a 3 années par ferman.
    #2387245
    kellr1388
    Participant
    Initié WordPress
    30 contributions

    Bonjour Ferman,

    Merci pour ta réponse. Je viens de tout mettre en place, en suivant chaque étape à la lettre. Le seul soucis c’est que la fonction à mettre dans le fichier fonction.php du thème enfant ne fonctionne pas, l’onglet de menu « témoignages » n’apparait jamais au menu…J’ai tenté par mal de combinaisons différentes pour essayer (mettre la fonction à différents endroits du fichier fonction.php du thème enfant, changer légèrement le code…) mais jamais il n’apparait au menu. As tu une idée d’où vient le soucis ? Merci

    #2387250
    ferman
    Modérateur
    Maître WordPress
    7136 contributions

    Bonjour,

    Les menus conditionnels fonctionnent-ils? Et pour le bouton « témoignages », c’est lui qui n’apparaît pas au menu ou bien c’est le lien vers la page témoignage qui ne fonctionne pas?

    Si le bouton n’apparaît pas, c’est peut être que vous n’utilisez pas un menu « normal » (par ex.un megamenu), encore que dans ce cas les menus conditionnels ne devraient pas non plus fonctionner. Si c’est le lien mettez l’URL complètre de la page : https : // etc.

    Avec un menu classique (comme le mien) ça fonctionne sans problème.

    L’emplacement dans functions.php n’a aucune importance.

    • Cette réponse a été modifiée le il y a 3 années par ferman.
    #2387254
    kellr1388
    Participant
    Initié WordPress
    30 contributions

    Oui les menus conditionnels fonctionnent ! Du coup j’ai un menu avec les trois onglets concernant le distanciel uniquement (menu 1). Il manque les onglets communs aux deux parties. Le bouton témoignage n’apparaît pas au menu du tout, donc le soucis ne concerne pas le clic
    Mon menu est en  »constructeur de page avancée » donc pas de méga menu logiquement

    Par contre, le soucis vient peut-être d’un changement que j’ai fais de mon côté : au lieu d’avoir une page d’accueil commune qui décline en deux sous accueil (un presentiel un distanciel), j’ai privilégié l’option de faire une page d’accueil (nomdesite.fr = menu1) pour le présentiel et une déclinaison (nomdesite.fr/en-ligne = menu2) pour le distanciel.
    Est-ce que le soucis vient de là à votre avis?

    • Cette réponse a été modifiée le il y a 3 années par kellr1388.
    #2387262
    ferman
    Modérateur
    Maître WordPress
    7136 contributions

    Par contre, le soucis vient peut-être d’un changement que j’ai fais de mon côté …etc.

    Je ne sais pas. Je pense plutôt que c’est dû au fait que vous utilisez un constructeur de page « spécial Enfold ». Le problème avec ça est que les filtres WordPress classiques ne s’appliquent pas forcément (dans votre cas « wp_nav_menu_items »). La liste des filtres propres à Enfold est ICI. Essayez en remplaçant « wp_nav_menu_items » par « avf_menu_items ». Si ça ne fonctionne pas, la meilleure chose est de contacter Kriesi / Enfold et de leur dire ce que vous voulez faire (mettre des boutons dans le menu) . Enfold étant un thème commercial, nous n’avons pas accès aux dossiers du thème et ne pouvons pas tester. Une autre possibilité est de mettre les boutons constants en dehors du menu.  Tenez-moi au courant.

    #2387265
    kellr1388
    Participant
    Initié WordPress
    30 contributions

    Je viens d’essayer cette manip sans succès, ça n’apparait pas au menu. Je vais les contacter alors, en espérant qu’ils me répondent, je les avait déjà contacté sans obtenir de réponse par le passé. N’ayant pas de plan B, tout dépend de ça maintenant, je ne pensais pas que mon thème empêcherai la manip de fonctionner

    #2387275
    ferman
    Modérateur
    Maître WordPress
    7136 contributions

    je ne pensais pas que mon thème empêcherai la manip de fonctionne

    Je suis sûr que c’est possible: il faut simplement trouver comment ça se fait dans le cas de Enfold

    je les avait déjà contacté sans obtenir de réponse par le passé.

    Si vous êtes à jour avec votre licence, ils doivent vous aider; vous payez pour ça. Il faut insister. Expliquez-leur bien ce que vous voulez faire.

    Autrement, il restera la possibilité d’afficher les boutons en dehors du menu par exemple en haut de page. Sans voir le site, cependant, l’aspect de ces boutons sera difficile à régler.

    • Cette réponse a été modifiée le il y a 3 années par ferman.
    #2387277
    ferman
    Modérateur
    Maître WordPress
    7136 contributions

    Vous pouvez même tout simplement leur dire que vous voulez ajouter un bouton au niveau du menu mais indépendant du menu et envoyer à Enfold la fonction d’origine:

    add_filter( 'wp_nav_menu_items', 'add_logo_nav_menu', 10, 2 );
    function add_logo_nav_menu($items, $args){
    $newitems = '<li><a title="logo" href="#">LOGO</a></li>';
    $newitems .= $items;

    return $newitems;
    }

     

    ainsi que le lien  vers cette fonction et leur demander pourquoi le « hook » “wp_nav_menu_items” ne fonctionne pas. Ils vous répondront.

    • Cette réponse a été modifiée le il y a 3 années par ferman.
    • Cette réponse a été modifiée le il y a 3 années par ferman.
15 sujets de 16 à 30 (sur un total de 54)
  • Vous devez être connecté pour répondre à ce sujet.