IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

WordPress PHP Discussion :

Fonction PHP pour changer de menu dans wordpress


Sujet :

WordPress PHP

  1. #1
    Membre averti
    Homme Profil pro
    Intégrateur Web
    Inscrit en
    Avril 2013
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Intégrateur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2013
    Messages : 23
    Par défaut Fonction PHP pour changer de menu dans wordpress
    Bonjour tout le monde !

    Je viens demander un petit coup de main pour un problème que j'ai avec Wordpress
    Je suis en train de créer un site qui contient plusieurs mini sites.
    Chaque mini site à son propre menu de navigation.

    Du coup je voudrais faire en sorte que quand on switch de mini site, la navigation change aussi.

    J'ai du coup écrit cette petite fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $parents = get_post_ancestors( $post->ID );
    $id = ($parents) ? $parents[count($parents)-1]: $post->ID;
    $parent_id = "forum_parent_".$id;
     
    if (bbp_is_single_topic() && $parent_id == 'forum_parent_11801'){
    wp_nav_menu(array('theme_location' => 'avia', 'menu'=>'menu-frenchtis-life' ));
    }
    Avec ça, le bon menu est affiché sur la bonne page. Ok, mais pas au bon endroit, pas OK

    Je pensais qu'en ajouter le paramètre : 'theme_location' => 'avia', ça placerait le menu à la place du menu principale du theme qui à pour id avia

    Je précise que je suis nul en PHP, et du coup je voudrais vous demander un coup de main pour comprendre pourquoi cette fonction ne place pas le menu au bon endroit !

    Merci d'avance

  2. #2
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 642
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 642
    Par défaut
    La fonction "wp_nav_menu" génère le menu à l'endroit où se fait l'appel. l'argument "theme_location" permet juste de donner un nom à l'emplacement.

    Donc pour que ce que tu veux faire fonctionne, tu peux mettre ton code dans le thème à l'endroit où se trouve le thème actuel. Si tu as besoin d'aide pour faire cela, indique nous comment s'appelle ton thème et montre nous ce qu'il y a dans le fichier "header.php" (c'est souvent à cet endroit que se trouve le menu).

  3. #3
    Membre averti
    Homme Profil pro
    Intégrateur Web
    Inscrit en
    Avril 2013
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Intégrateur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2013
    Messages : 23
    Par défaut
    Salut Mathieu et merci de te pencher sur mon problème !

    Ok merci pour ton explication je comprend mieux pourquoi il ne se place pas au bon endroit

    Le thème qui est installé est ENFOLD.
    Et j'ai placer le code ci-dessus dans mon fichier header.php avant la fermeture du header (avant la balsie </head>)

    Le menu se génère dans un autre fichier php qui s'appelle helper-main-menu.php dans le dossier /include

    Mais je ne voudrais pas, si possible, modifier les fichiers du theme, pour les mise à jour à venir !

    N'y a t-il pas moyen en php de remplacer un menu par un autre ?

    J'ai essayer de décortiquer le plugin ZEN MENU LOGIC pour essayer de comprendre car lui le fait sans soucis :p

    Encore merci d'avance

  4. #4
    Membre Expert

    Homme Profil pro
    Webmaster
    Inscrit en
    Mai 2011
    Messages
    1 049
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 049
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par aztix Voir le message
    Avec ça, le bon menu est affiché sur la bonne page. Ok, mais pas au bon endroit, pas OK

    Je précise que je suis nul en PHP, et du coup je voudrais vous demander un coup de main pour comprendre pourquoi cette fonction ne place pas le menu au bon endroit !

    Merci d'avance
    Etre nul en PHP n'est absolument pas un problème pour utiliser Wordpress. En effet, il n'est pas nécessaire de connaître ni d'utiliser du php pour modifier un thème wordpress. Par contre, être nul en wordpress va poser problème pour faire ce qu'on veut.
    Ici pas besoin de se casser la tête dans du php. Pour gérer les menus, il suffit d'aller dans le Tableau de bord > Apparence > Menus. Là il est possible de créer plusieurs menus (menu principal, secondaire, ... ) et on peut aussi les placer où on veut par ex. en haut de page, en pied de page ou dans des widgets etc.
    Il suffit de choisir quel menu on veut pour chacune des pages ou sous-pages ...

  5. #5
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 642
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 642
    Par défaut
    Pour ne pas modifier les fichiers du thème, il est possible d'utiliser un filtre WordPress, soit dans une extension soit avec un thème enfant.

    Comment sont définis les différents menus, dans l'administration -> Apparence -> Menus ?

  6. #6
    Membre averti
    Homme Profil pro
    Intégrateur Web
    Inscrit en
    Avril 2013
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Intégrateur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2013
    Messages : 23
    Par défaut
    Etre nul en PHP n'est absolument pas un problème pour utiliser Wordpress. En effet, il n'est pas nécessaire de connaître ni d'utiliser du php pour modifier un thème wordpress. Par contre, être nul en wordpress va poser problème pour faire ce qu'on veut.
    Ici pas besoin de se casser la tête dans du php. Pour gérer les menus, il suffit d'aller dans le Tableau de bord > Apparence > Menus. Là il est possible de créer plusieurs menus (menu principal, secondaire, ... ) et on peut aussi les placer où on veut par ex. en haut de page, en pied de page ou dans des widgets etc.
    Il suffit de choisir quel menu on veut pour chacune des pages ou sous-pages ...
    Merci pour ta réponse miss_socrates, mais je crois que tu n'as pas tout à fait compris mon besoin, je ne dois pas avoir réussi à bien m'exprimer :p
    Je connais parfaitement Wordpress et je suis intégrateur web, du coup spécialiste en HTML et CSS

    Mon problème est le suivant :

    J'ai un wordpress avec un theme (ENFOLD)
    J'utilise BBPRESS pour le système de forum.

    Mon site est découpé en plusieurs mini site, qui contiennent tous, un menu de navigation, un logo, des news et un forum.

    J'ai réussi sans problème grâce au plugin ZEN MENU LOGIC, à attribuer les bons menus aux bonnes pages. (ZEN MENU LOGIC permet de choisir un menu différent lorsque qu'on édit chaque page/post)

    Donc pour le moment chaque partie du site à son bon logo et sa bonne navigation.

    Le problème arrive avec les forums.
    J'ai créer mon arborescence de forum dans l'admin de wordpress, et lorsque je les édits, je sélectionne pour chacun d'eux, le bons menu de navigation (toujours grâce à ZEN MENU LOGIC)
    Jusque la pas de problème.

    Maintenant lorsqu'un utilisateur crée un sujet à l’intérieur d'un des forum, BBpress génère une page "topic".
    Et c'est la que mon problème intervient : cette page topic reprend le menu principale du site et non le menu spécifique à cette section. (j'ai réussi pour le logo

    La solution que j'ai trouvé pour le moment, est de retourner dans l'administration de wordpress, dans la section : "topic" de bbpress, repérer le nouveau sujet qui vient d'être crée, l'éditer, et toujours grace à ZEN MENU LOGIC, attribuer le bon menu de navigation !
    Mais le problème de cette solution est que je ne vais pas m'amuser à attribuer le bon menu à chaque fois qu'un utilisateur crée un sujet !

    En fait je voudrais automatiser ça, d'ou ma fonction php

    En schéma ça donnerai ça :

    MENU PRINCIPALE sur :
    SITE PRINCIPALE
    – FORUM PRINCIPALE
    — TOPICS
    — TOPICS
    ____________________

    MENU 1 sur :
    SITE 1
    – FORUM 1
    — TOPICS
    — TOPICS

    ____________________

    MENU 2 sur :
    SITE 2
    – FORUM 2
    –TOPICS
    –TOPICS


    Comment sont définis les différents menus, dans l'administration -> Apparence -> Menus ?
    Mathieu : voila comment sont défini les menus :

    Emplacements du thème :
    - Enfold Menu principal (Actuellement réglé sur : MENU DSF)
    - Enfold Secondary Menu (Will be displayed if you selected a header layout that supports a submenu here)
    - Enfold Menu pied de page

    En tout cas merci à vous pour vos réponse

  7. #7
    Membre averti
    Homme Profil pro
    Intégrateur Web
    Inscrit en
    Avril 2013
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Intégrateur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2013
    Messages : 23
    Par défaut
    C'est bon !!!

    J'ai réussi à faire ce que je voulais !!!
    J'ai juste trouvé le bon fichier, j'y ai inséré ma fonction php tel quel au bon endroit et youpla boum ça fonctionne !!!

    Bon mon seul problème maintenant c'est que pour ça j'ai du modifier un fichier php du thème. Du coup il faudra faire attention pour les prochaines mises à jour !

    En tout cas merci de votre aide

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PHP 5.3] script php pour affichage contenu menu dans un <div>
    Par Seelass dans le forum Langage
    Réponses: 4
    Dernier message: 22/02/2011, 19h47
  2. position idéale pour placer un menu dans une page d'accueil
    Par Smix007 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 01/02/2007, 12h14
  3. [Configuration] php pour recuperer une variable dans l'url sans utiliser $_GET
    Par mikebranque dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 4
    Dernier message: 22/06/2006, 20h22
  4. [CSV] Fonction PHP pour SQL Server
    Par wolflinger dans le forum Langage
    Réponses: 2
    Dernier message: 17/05/2006, 12h57
  5. barre de recherche dans les fonctions php pour firefox
    Par titoumimi dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 8
    Dernier message: 03/02/2006, 10h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo