- WordPress :5.8
- Statut : non résolu
- Ce sujet contient 53 réponses, 4 participants et a été mis à jour pour la dernière fois par kellr1388, le il y a 2 années et 11 mois.
-
AuteurMessages
-
25 septembre 2021 à 11 h 35 min #2386013
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.
25 septembre 2021 à 23 h 23 min #2386028Non, 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.
26 septembre 2021 à 14 h 48 min #2386062Merci 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 !
26 septembre 2021 à 15 h 35 min #2386065Mais 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.
26 septembre 2021 à 23 h 22 min #2386084Flobogo : 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.
27 septembre 2021 à 12 h 36 min #2386112La 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 !
7 octobre 2021 à 17 h 37 min #2386797Je 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 !!
7 octobre 2021 à 18 h 22 min #2386798Comme 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.
15 octobre 2021 à 11 h 38 min #2387245Bonjour 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
15 octobre 2021 à 12 h 41 min #2387250Bonjour,
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.
15 octobre 2021 à 13 h 34 min #2387254Oui 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 logiquementPar 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.
15 octobre 2021 à 14 h 38 min #2387262Par 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.
15 octobre 2021 à 15 h 02 min #2387265Je 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
15 octobre 2021 à 18 h 26 min #2387275je 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.
15 octobre 2021 à 19 h 01 min #2387277Vous 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.
-
AuteurMessages
- Vous devez être connecté pour répondre à ce sujet.