Afficher une liste d’articles en 2 colonnes
posté le par Rtransat | 20 commentaires | 1033 vues |
Ajouter à mes favoris Lorsque l'on veut mettre l'aperçu de ses articles sur 2 colonnes un problème arrive, si il n'y a pas de hauteur à la div qui contient l'aperçu les blocs se positionnent par rapport au float de cette div, donc si vous avez 3 articles sur votre page et que le deuxième article à une hauteur plus petite que le premier article alors le troisième article sera afficher en dessous du second article. Pour parer ce problème il y a une astuce toute simple à mettre en place; l'utilisation du modulo (%).
Commencez par créer une variable $i = 0; avant la boucle WordPress, une fois dans cette boucle, incrémenter votre variable $i ($i++). Votre boucle doit maintenant contenir une div conteneur qui contiendra l'aperçu de votre article (exemple :
), cette div sera flottante sur la gauche avec une marge à gauche et une largeur.
Il faut maintenant calculer le reste de la division par 2 de votre variable $i et vérifier si c'est égal à 0, pour ensuite afficher une div qui aura la propriété CSS clear:both si nous entrons dans la condition. (exemple avec un ternaire : echo ($i % 2 == 0) ? '
' : '';) A chaque fois que $i vaut un nombre paire alors la div annulera le float.
Voici un code complet pour appuyer la théorie :
<?php $i = 0; if(have_posts()): while(have_posts()): the_post(); $i++; ?> <div class="post-preview"> <h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2> <a href="<?php the_permalink(); ?>"><?php the_post_thumbnail(); ?></a> <?php the_excerpt(); // ou the_content('Lire la suite') ?> </div> <?php echo ($i % 2 == 0) ? '<div class="cb"></div>' : ''; ?> <?php endwhile;else: ?> Aucune actualités. <?php endif; ?>
Le CSS :
.cb {clear:both;}
.post-preview {float:left;margin-left:40px;width: 290px;}

Exemple de rendu en 2 colonnes
Si vous avez aimé cet article, n'oubliez pas de vous abonner à notre flux RSS ou à notre newsletter au contenu exclusif.
- Jérôme le
- jonathan le
- Joelle le
- gwen le
- Rtransat le
- gwen le
- Rtransat le
- gwen le
- Rtransat le
- gwen le
- gwen le
- Rtransat le
- gwen le
- Rtransat le
- gwen le
- rapetou le
- Gwen le
- Gwenm le
- Alain RONK le
- slowflex le
Laisser un commentaire