[Menu Wordpress ] Ne pas afficher le menu sur la page d'accueil

Nouveau WRInaute
Bonjour,

Je suis novice et je dois mettre à jour un site sous wordpress avec un design particulier.Le menu principal (horizontal) doit s'afficher sur toutes les pages SAUF sur la page d'accueil car il est affiché autrement (en vertical avec du html simple sur un background).
Je suppose que cela doit être une condition à positionner dans le header mais je ne trouve pas ce code, de ce fait, le menu s'affiche en double sur la page d'accueil.

Merci pour votre aide et vos réponses !
 
Nouveau WRInaute
Merci Spout pour votre retour rapide et votre lien, toutefois cela ne fonctionne pas.
Le menu principal reste affiché sur la page d'accueil. Je dois peut-être faire une erreur au niveau du positionnement de la fonction.
Merci pour votre aide.
 
WRInaute occasionnel
Vous ne pouvez pas plutôt changer le css du menu sur la home (pas le menu) ?

Si vous utilisez des widgets/plugins pour les menus vous pouvez utiliser "widget logic", et mettre une condition sur le widget.
!is_home() -->le widget ne s'affichera pas sur la home.

Sinon il faudra mettre les mains dans le code, analyser ou se situe le menu, et utiliser les fonctions adaptées comme l'indique Spout.
if ( is_front_page()||is_home()){
 
Nouveau WRInaute
Merci pour votre réponse Doubrovski, je n'utilise pas de widget pour le menu.
Je pense également que la solution proposée par Spout est la bonne mais je ne dois pas réussir à positionner le code correctement, je ne m'y connais pas trop.
 
Nouveau WRInaute
J'ai trouvé la solution!
En positionnant correctement le code, la fonction if ( is_front_page() faisait exactement l'inverse : afficher le menu uniquement sur la page d'accueil et pas sur les autres pages, ce que je voulais c'est afficher le menu sur les autres pages mais pas sur la page d'accueil.C'est donc la fonction if ( is_front_page() dont j'avais besoin. Cela fonctionne à présent.
Problème résolu.

Merci à vous.
 
WRInaute occasionnel
L'emplacement du menu dépend des thèmes et de la méthode utilisée.
En principe il faut trouver la bonne page dans le dossier du theme, copier cette page pour l'éditer dans le dossier theme-child (thème enfant). Autrement à la prochaine update de votre thème, la modification disparaîtra.

Comment ont été placés vos deux menus ? Les menus ont tous les deux été crées dans le panel admin ?


EDIT : Oui, logiquement, pour afficher le menu partout sauf sur la page principale, il faut inverser la condition avec un point d'exclamation :
if( !is_front_page() ){ echo 'mon menu'; }
 
Nouveau WRInaute
Bonjour,
J'ai bien pigé le code que l'on doit insérer pour ne pas avoir le menu sur la Home,
Mais ou dois-je insérer ce code ?
Sur ma css ou sur mon article?

Mercii !
 
Nouveau WRInaute
Mon menu s'appelle "Principal"

Vous me conseillez donc d'ajouter

if( !is_front_page() ){ echo 'principal'; }

Dans la page PHP header?

Juste avant la balise </header>
 
WRInaute occasionnel
echo 'principal'; est un exemple (cela affiche le mot "principal" en PHP).
Avec la condition if( !is_front_page() ){ echo 'principal'; } le code affichera le mot "principal" sur toutes les pages sauf la page d'accueil.
echo 'principal'; doit être remplacé par le code PHP du menu qui doit donc être placé entre les accolades.
1-Trouver où se situe le code PHP du menu dans le dossier du thème
2-Créer un thème enfant et copier la page concernée
3-Ajouter la condition PHP autour du code du menu

Le 2 n'est pas obligatoire mais permet de conserver les modifs du code après une mise à jour du thème (se renseigner sur les thèmes enfant dans ce cas).
 
Nouveau WRInaute
Merci Doubrowski, je vais tenter cette manie.

marie aude, pour ton astuce à toi, je dois placer ce code de la même manière avec le code php du menu entre les parenthèses ?

if ( !is_home() || !is_front_page( code php du menu ) )

merci à vous !
 
Nouveau WRInaute
J'ai cette portion qui il me semble correspond à ce que je recherche ...

<header id="site-header"<?php if ( ! $anps_slider_shortcode ) { echo ' class="no-slider"'; } elseif ( $anps_slider_checkbox == "on" ) { echo ' class="header-text-only"'; } ?>>
<div class="main-wrapper clearfix">
<?php get_logo(); ?>
<!-- Main navigation Start -->
<nav id="main-nav" role="navigation" class="right font-main">
<?php wp_nav_menu( array( 'container_class' => 'menu-header', 'theme_location' => 'primary') ); ?>
</nav>
<!-- Main navigation End -->
<?php get_mobile_menu(); ?>


Mais j'essaye de placer votre code en tatouant mais à vrai dire ça ne marche pas, ca ne fait qu'afficher le code sur la page.
 
Nouveau WRInaute
Doubrovski a dit:
Si vous voulez éditer le code PHP de vos pages, ça peut être bien d'apprendre quelques bases (au moins les balises <?php ?>, les conditions, et affichage du texte ?)
http://fr.openclassrooms.com/informatique/cours/concevez-votre-site-we ... p-et-mysql

Sinon, des pluggins existent pour préciser quand certains éléments doivent s'afficher sur le site.
Moi j'utilise parfois Widget Logic, sur un site ou le menu est un widget.

Merci, dans la meme idée, j'ai trouvé un plugin qui permet de gérer la visibilité des menus "Menu Items Visibility Control"
merci de votre aide
 
Discussions similaires
Haut