time

Créer une page d’archives listant les articles par date sous WordPress

Créer une page d’archives n’est pas souvent une mince affaire. En effet, il existe de multiples façons de lister vos articles mais aussi vos catégories : par date, par ordre alphabétique, etc. C’est pourquoi, nous allons voir ici comment créer une page d’archives qui listera l’intégralité de vos articles lesquels seront triés par catégories et ce, pour votre blog WordPress.

Résultat final

Pour bien comprendre l’objectif de ce guide, voici un schéma de ce que vous obtiendrez :

  • Octobre 2010
    • Art. 1
    • Art. 2
    • Art. 3
  • Septembre 2010
    • Art. 1
    • Art. 2
    • Art.3
Capture d'écran - WordPress Channel et sa page d'archives

Le résultat du tutoriel en image

Pour mettre en place cette page d’archives chronologique, je vous propose d’utiliser un modèle de page pour éviter de modifier votre thème. Cependant, vous pouvez très bien attaquer directement des fichiers standards tels que archive.php !

Création du modèle de page WordPress

Dans le dossier de votre thème, dupliquez le fichier page.php pour réutiliser la structure HTML de votre site. Renommez le fichier pour plus de commodité, par exemple, template-chronologique.php.

Collez dans un premier temps ces premières lignes de code indiquant à WordPress qu’il s’agit d’un modèle de page.

<?php
/*
Template Name: Archives chronologique
*/
?>

Puis, juste après la commande <?php the_content(); ?>, insérez ceci :

<?php

$previous_year = $year = 0;
$previous_month = $month = 0;
$ul_open = false;

$myposts = get_posts('numberposts=-1&orderby=post_date&order=DESC');

?>

<?php foreach($myposts as $post) : ?>	

	<?php

	setup_postdata($post);

	$year = mysql2date('Y', $post->post_date);
	$month = mysql2date('n', $post->post_date);
	$day = mysql2date('j', $post->post_date);

	?>

	<?php if($year != $previous_year || $month != $previous_month) : ?>

		<?php if($ul_open == true) : ?>
		</ul>
		<?php endif; ?>

		<h3><?php the_time('F Y'); ?></h3>

		<ul>

		<?php $ul_open = true; ?>

	<?php endif; ?>

	<?php $previous_year = $year; $previous_month = $month; ?>

	<li><span><?php the_time('j F'); ?> - </span> <span><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></span></li>

<?php endforeach; ?>
	</ul>

N’oubliez pas de sauvegarder le fichier sur votre serveur dans le dossier /wp-content/themes/NOM_DU_THEME/

Publication de la page d’archive chronologique

Connectez-vous ensuite dans votre administration WordPress puis appliquez le modèle de page que nous venons de créer.

Vous pouvez – par exemple, créez une page que vous nommerez Archives. Dans le module Attributs de la page, choisissez Archives chronologiques comme Modèle.

Capture d'écran - Modèle WordPress Archives chronologiques

Définissez le nouveau modèle de page WordPress

Publiez à présent votre nouvelle page et admirez le résultat !

Félicitations ! Vous venez de créer une page d’archive chronologique grâce à la puissance des modèles de pages WordPress.

Crédits photo : ToniVC

Aurélien Denis est le fondateur du projet WordPress Channel proposant tutoriels et podcasts librement téléchargeables. En 2010, il fonde Neticpro, une agence Web spécialisée WordPress. Il est aussi co-fondateur du site Protuts.net (tutoriels PC/Mac/Linux) et community manager pour l’Imagine Cup 2011/2012, une compétition mondiale organisée par Microsoft. Voir tous les tutoriels de Aurélien Denis →