Changer de sidebar en fonction de la page

  • Statut : non résolu
11 sujets de 1 à 11 (sur un total de 11)
  • Auteur
    Messages
  • #448971
    Globber
    Participant
    Initié WordPress
    7 contributions

    Bonjour,

    je souhaiterais utiliser différentes sidebar, en fonction des pages affichées (post static), en effectuant une condition à partir du titre de la page (the_title) -le thème utilisé est: Cordobo Green Park 0.9.2 BETA 2 –

    je suis donc allé dans l’éditeur de thème et j’ai édité le modèle de page (pahe.php) et j’ai utilisé la fonction switch:

    < ?php
    $title=’< ?php the_title(); ?>‘;

    switch($title)
    {
    case ‘Forum’:
    include (TEMPLATEPATH . ‘/sidebarf.php’);
    break;

    case ‘A propos’:
    include (TEMPLATEPATH . ‘/sidebar.php’);
    break;

    default:
    include (TEMPLATEPATH . ‘/sidebar.php’);
    break;
    }
    ; ?>

    Le problème c’est que quelque soit le titre de la page, seule la sidebar par défaut s’affiche, je suppose que j’ai un problème de variable mais je ne vois pas où

    Merci d’avance de votre aide.

    #582179
    artxtra
    Participant
    Chevalier WordPress
    149 contributions

    [c][/c] risque de changer à chaque boucle : où as-tu inséré ton hack, à l’intérieur de la boucle ou pas ?
    Si tu l’as inséré à l’intérieur de la boucle, tu risques d’avoir des problèmes de positionnement… le template du sidebar étant inclue dans celui du post
    Essaye avec les tags condionnels : is_category ou is_author, par exemple…

    #582180
    Globber
    Participant
    Initié WordPress
    7 contributions

    Merci de ta réponse.

    En fait j’ai inséré ce script juste en dessous de

    dans page.php

    je viens aussi d’essayer avec is_author et j’ai le même problème.

    Comment faire pour faire corresponde la valeur the_title avec le titre de la page/post ?

    #582181
    artxtra
    Participant
    Chevalier WordPress
    149 contributions

    il faudrait qu’il y ait un seul post par page

    
    have_posts()) : $top_query->the_post(); $first_post = $post->ID; ?>

    remplace le début de la boucle avec ça.

    #582182
    dean
    Participant
    Chevalier WordPress
    487 contributions

    ce petit bout de code devrait pouvoir te guider 😉 ça marche chez moi pour adapter le footer en fonction du titre

    if (get_the_title()==’Forum'{
    include (TEMPLATEPATH . ‘/sidebarf.php’);
    		}
    		else{
    include (TEMPLATEPATH . ‘/sidebar.php’);
    		}

    #582183
    dean
    Participant
    Chevalier WordPress
    487 contributions

    il faut qu’il soit intégré dans un code comme celui là:

    if (have_posts()) : 
    		while (have_posts()) : the_post(); ;
    	endwhile;

    sinon fais moi un copier coller de ton page.php du thème, je te montrerais dessus

    #582184
    dean
    Participant
    Chevalier WordPress
    487 contributions

    zut j’avais pas lu les autres réponses, désolé….

    #582185
    Globber
    Participant
    Initié WordPress
    7 contributions

    Bonjour à tous,

    merci pour vos propositions que j’ai toutes essayées (dans tous les sens!) mais ça ne marche toujours pas, ou j’ai je suis passé à côté de quelque chose.

    Je vous donne la page.php en entier, il y a peut-être une erreur qui bloque ailleur ?

    <?php

    switch($the_title)
    {
    case ‘Forum’:
    include (TEMPLATEPATH . ‘/sidebarf.php’);
    break;

    case ‘A propos’:
    include (TEMPLATEPATH . ‘/sidebarap.php’);
    break;

    default:
    include (TEMPLATEPATH . ‘/sidebar.php’);
    break;
    }
    ;?>

    #582186
    artxtra
    Participant
    Chevalier WordPress
    149 contributions

    [c]$title=”;[/c] a disparu ?
    Il reste toujours à l’extérieur de la boucle…
    A mon avis ce système peut pas fonctionner.
    Montre-nous comment tu as copié la soluce de Dean, stp.

    #582187
    Globber
    Participant
    Initié WordPress
    7 contributions

    Nickel !!!!

    en fait j’avais fait un simple copier/coller trop rapide de la solution de Dean et il me manquait une paranthèse et un endif; en fin de fonction while. Autre problème, la fonction if semble me poser des problème, j’ai donc opeté pour un switch (plus approprié dans on cas d’ailleurs. je vous joins le code:

    
    
    
    
        <div id="content2" class="narrowcolumn">
            
       
        <br />
    
        
            </div>
        
        </div>

    Merci à tous!!!:D

    #582188
    dean
    Participant
    Chevalier WordPress
    487 contributions

    c’est cool, j’aime bien quand ça marche 😉

11 sujets de 1 à 11 (sur un total de 11)
  • Vous devez être connecté pour répondre à ce sujet.