Récupérer les archives de vos posts de l'année passée

22 Décembre 2010

Les outils pour afficher les archives avec WordPress ne sont pas légion, les options sont assez limité et on peut difficilement afficher les archives que l'on désire. Par exemple, comment afficher uniquement les archives d'une année précise, ou alors toutes les archives du mois de décembre. Voici un article qui va vous permettre d'affiner les archives que vous voulez afficher...

Le problème pour afficher les archives

La seule manière de récupérer des archives d'un blog WordPress est la fonction wp_get_archives(). Le gros défaut de cette fonction, c'est qu'elle est extrêmement limitée et qu'elle ne dispose pas de beaucoup d'options pour afficher les archives que l'on veut exposer.

Bref, imaginons que l'on veut afficher uniquement les archives de l'année passée, mais pas les archives de l'année courante. C'est simple ce n'est pas possible avec les options proposés en standard par WordPress. Heureusement, il est possible d'utiliser les filter de WordPress pour modifier la requête SQL effectuée par la méthode wp_get_archives(). Imaginons que je souhaite récuperer uniquement les archives mensuelles de 2011, voici le code à placer directement dans votre template à l'endroit ou vous voulez afficher vos archives :

<?php
	function filter_last_year_archives($where_clause) {
		$year = date('Y') -1;
		return $where_clause." AND post_date LIKE '%".$year."%'";
	}
	add_filter('getarchives_where','filter_last_year_archives');
	$archives = wp_get_archives('type=monthly&show_post_count=true&echo=1');
	remove_filter('getarchives_where','filter_last_year_archives');
?>

Explications

Ce code est très simple et se décompose en 4 étapes :

Libre à vous de tuner ce snippet et de le placer dans votre fichier functions.php. Dans cet exemple, je l'utilise pour afficher les archives de l'année dernière, mais il peut être utile pour d'autres affichages d'archives. Personnellement je vais l'utiliser sur ma page d'archives dès l'année prochaine, dès que j'aurai un an archive sur ce blog. Je l'ai également partagé sur WP-Snippets.

Charger les commentaires…