La boucle wordpress

C’est la principale boucle du site wordpress. Soit elle reçoit un argument (dans l’url) et elle y répond, soit elle ne reçoit aucun argument et elle donne les derniers posts.

On l’appelle boucle car elle va répéter ce qui se trouve à l’intérieur d’elle (entre la ligne while et celle du endwhile), autant de fois qu’il y a des posts correspondant à la requête, rendant disponible l’information de celui-ci.

Une page "for beginner" et en anglais bien utile ici.

Voici une boucle complète, à placer dans le fichier index.php :

<div id="corps">
<?php if(have_posts()) : ?><?php while(have_posts()) : the_post(); ?>
<div class="post" id="post-<?php the_ID(); ?>">
<h2><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a></h2>
<div class="post_content">
<?php the_content(); ?>
</div>
</div>
<?php endwhile; ?>
<!-- lien vers page precedente et suivante -->
<div class="navigation">
<?php posts_nav_link(' - ','page suivante','page pr&eacute;c&eacute;dente'); ?>
</div>

<?php endif; ?>
</div>

Il s’agit de code php, chaque fois enserré dans un balisage <?php qui se termine par ?>, et qui signale "ici c’est du code php" et "ici il s’arrête, on continue en html. Il ne faut donc pas insérer du simple html directement à l’intérieur de ce balisage.

La première ligne contrôle la demande : si on a demandé la page 3 (page=3) et qu’elle n’existe pas, la boucle ne tournera pas, et le php entre les deux lignes ne sera pas pris en compte.

Si il y a réponse à la demande, la boucle commence. De manière invisible, le contenu des posts sera rendu disponible à chaque tour.

Principales informations disponibles dans la boucle

Une série de fonctions permet d’afficher les informations des articles et pages. On écrit ces fonctions dans un tag php, entouré de tous les tags html nécessaires.

<a href="<?php the_permalink(); ?>">
<?php the_title(); ?>
</a>

donnera par exemple

<a href="http://localhost:8888/buildatheme/2018/02/12/concert-dans-le-centre/">
Concert dans le centre
</a>

the_permalink() écrit le lien vers l’article
the_post_thumbnail() affiche l’image à la une (si elle est déclarée dans le fichier functions.php)
the_title() affiche le titre
the_content() affiche le contenu de l’article ou de la page
the_excerpt() affiche un extrait de l’article ou de la page
the_time() affiche la date de création de l’article
the_author() affiche l’auteur
the_category( ) affiche les catégories associées à l’article

Infos supplémentaires dans le post

Cette ligne peut être placée sous le post ou sous le titre.

<p class="postmetadata">
   <?php the_time('j F Y') ?> par <?php the_author() ?> |
   Cat&eacute;gorie: <?php the_category(', ') ?> |
   <?php comments_popup_link('Pas de commentaires', '1 Commentaire', '% Commentaires'); ?> <?php edit_post_link('Editer', ' | ', ''); ?>
</p>