5568 sujets

Sémantique web et HTML

Bonjour/bonsoir!

http://sdz-upload.s3.amazonaws.com/prod/upload/sidebar%20qui%20ne%20doit%20pas%20%C3%AAtre%20l%C3%A0.jpg

Comme vous pouvez le voir, j'ai fait une faute à "censée". Mais le plus important, c'est la sidebar, qui s'affiche sous le footer!

Je m'explique:

Sur mon site, j'ai une page d'accueil statique. La page des articles se situe sur la page "Blog".
J'ai créé de nombreuses sidebar (pour qu'elles soient différentes en fonction des catégories des articles.) et pour afficher la sidebar de la page des articles, la sidebar "blog", j'ai utilisé la fonction suivante:

if(is_home()){
        dynamic_sidebar('Blog');
        }

Donc jusque là tout va bien.
Le problème vient du fait que, évidemment, la page d'accueil est aussi la page home!
Et même lorsque j'enlève le get_sidebar(); la sidebar affiliée à home est toujours là...
Et puis après maintes essais infructueux, j'ai compris pourquoi la sidebar continuait obstinément de s'afficher:

Ce qui fait qu'une sidebar vienne squatter le bas de ma page d'accueil vient du fait que j'ai mis en place une boucle d'articles récents!

Je m'explique: J'ai créé trois boucles dans lesquelles s'affiches les trois derniers articles de mes trois catégories
SEULEMENT, J'avais assigné une sidebar à chacune de ces catégories spécifiques!
Je ne suis pas sûre de ce que j'avances, mais ça tient la route!
Maintenant, le truc serait de savoir comment stopper ces apparitions de sidebar sans pour autant perdre mon système de boucle....

voici le code de mes boucles:
<div class="poupette"></div>
            <div class="endirect">
            <h1>En direct du blog:</h1>
            <div id="lates-post">
            <?php
               query_posts('cat=3,4,5,6,7,8,9,10&showposts=1');
               while (have_posts()) : the_post();
            ?>
               <li class="home-actu1">
                <?php echo get_the_post_thumbnail($id, 'thumbnail', array('class' => 'aligncenter')); ?>
                     <div class="tranches">
                      
                     <span class="date-actu1">Le <?php the_date(); ?></span>
                      <span class="categorie1"><?php the_category();?></span></div><br />
                     <a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><strong><?php the_title(); ?></strong><br /></a>
                     
                     <span class="intro-actu1"><?php the_excerpt(); ?></span>
                     <span class="suite-actu1"><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>">Lire la suite</a></span>
               </li>  
            <?php
               $cpt+=1;
               endwhile;
            ?>
             
            <?php
               query_posts('cat=11,12,13,14,15,16,17,&showposts=1');
               while (have_posts()) : the_post();
            ?>
               <li class="home-actu2">
                    <?php echo get_the_post_thumbnail($id, 'thumbnail', array('class' => 'aligncenter')); ?>
                     <div class="tribulations">
                     <span class="date-actu2">Le <?php the_date(); ?></span>
                     <span class="categorie2"><?php the_category();?></span></br></div>
                     <a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><strong><?php the_title(); ?></strong><br /></a>
                      
                     <span class="intro-actu2"><?php the_excerpt(); ?></span>
                     <span class="suite-actu2"><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>">Lire la suite</a></span>
               </li>  
            <?php
               $cpt+=1;
               endwhile;
            ?>
             
            <?php
               query_posts('cat=18&showposts=1');
               while (have_posts()) : the_post();
            ?>
               <li class="home-actu3">
                 
                    <?php echo get_the_post_thumbnail($id, 'thumbnail', array('class' => 'aligncenter'));?>
                    <div class="partages">
                     <span class="date-actu3">Le <?php the_date(); ?></span>
                     <span class="categorie3"><?php the_category();?></span></div>
                     <div class="titre3"><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><strong><?php the_title(); ?></strong></a></div>
                     <span class="intro-actu3"><?php the_excerpt(); ?></span>
                     <span class="suite-actu3"><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>">Lire la suite</a></span>
               </li>  
            <?php
               $cpt+=1;
               endwhile;
            ?>
            </div>
</div>
            </div>

En espérant que vous pourrez m'aider



Bonne soirée!
Hello,

A priori, je ne vois pas de rapport entre tes boucles et l'apparition (ou non) de ta sidebar…

L'explication de ton problème est un peu confuse, j'ai du mal à cerner ce qui ne vas pas. Pourrais-tu essayer de le reformuler plus simplement ?

Sinon, dans la mesure où ta page "accueil" est bien indiquée comme affichée en tant que page d'accueil dans les Réglages de lectures de l'administration, le marqueur conditionnel à utiliser n'est pas is_home() mais plutôt is_front_page().

En attendant plus de détails (ou une explication simplifiée du souci) Smiley cligne
Bonjour!
adhassani: mon site est encore en local, sinon bien sûr que je vous l'aurai donné.
audrasjb: Je vais essayer de mieux expliquer:
J'ai créé quatre sidebar différentes, et les ai programmées pour qu'elles n'apparaissent qu'a l'affichage d'un article ayant une certaine catégorie.la sidebar "tranches de vie" n'apparait que lorsque le lecteur affiche un article ou un listing d'articles appartenant à la catégorie"tranches de vie", la sidebar "tribulations créatives" n'apparait que lorsque le lecteur affiche un article ou un listing d'articles appartenant à la catégorie"tribulations créatives" et la sidebar "partages"n'apparait que lorsque le lecteur affiche un article ou un listing d'articles appartenant à la catégorie"partages. Enfin lorsque le lecteur affiche le listing des articles de blog, toutes catégories confonduent, une autre sidebar est affichée.

Le fait que je mettre l'apparition de la sidebar sur le compte de la boucle, c'est parce que j'ai constaté que lorsque que je la supprimais (la boucle) et bien la sidebar disparaissait.

Merci pour l'appellation in_front_page(), je ne savais pas. Du coup je me demande si il n'y aurait pas une manière de dire "si tu es sur la page d'accueil, n'affiche pas de sidebar"

un truc du style
if(is_front_page() ){
		pas_de_sidebar();
		}

?

En attente de vous lire Smiley biggrin
Salut,

Voici un exemple de structure conditionnelle pour ce que tu souhaites faire. A toi de l'adapter en fonction de ton cas :

if ( is_archive() ) {
    // si on est dans une page d'archive (liste d'articles)
    if ( is_category( 'Tranches de vie' ) {
        // si on est dans la catégorie tranches de vie on appelle la sidebar correspondante
        get_sidebar( 'tranches-de-vie' );
    } elseif ( is_category( 'Tribulations créatives' ) {
        // si on est dans la catégorie tribulations créatives on appelle la sidebar correspondante
        get_sidebar( 'tribulations-creatives' );
    } elseif ( is_category( 'Partages' ) {
        // si on est dans la catégorie partages on appelle la sidebar correspondante
        get_sidebar( 'partages' );
    } else {
        // Sinon, on affiche l'autre sidebar
        get_sidebar( 'autre-sidebar' );
    }
}

Pas besoin de préciser de ne pas afficher de sidebar sur la page d'accueil, puisque celle-ci ne sera pas concernée par cette structure conditionnelle.

Ça correspond à ce que tu veux faire ?
Modifié par audrasjb (03 Feb 2014 - 23:57)