Dans la plupart des cas, l’affichage des articles (ou commentaires) sur WordPress se fait de façon classique (absolu) sous le format jour/mois/année avec la fonction get_date(). S vous souhaitez changer cela en optant pour les dates relatives comme sur Facebook ou Twitter (Article publié il y a 2 jours, 1 semaine etc.) il faut utiliser une fonction dédiée.
WordPress intègre une fonction peu utilisée à savoir human_time_diff() qui permet d’implémenter la date relative dans les publications de son blog.
L’utilisation de cette fonction est très simple : human_time_diff( $from, $to ) avec $from la date de publication d’un article ou un commentaire par exemple et $to correspond à la date actuelle.
Concrètement sur la page single.php de notre thème par exemple on va changer la date de publication des articles en changeant la ligne contenant the_date() par :
<?php $dateRelative = human_time_diff(get_the_time('U'), current_time('timestamp')); echo 'Article publié il y a ' . $dateRelative; ?>
Une autre façon d’implémenter cette fonctionnalité consiste à afficher la date relative des articles pendant une durée de 90 jours par exemple et d’afficher la date absolu dans le cas contraire.
<?php // Utilisation : echo dt_human_time_diff(90); function dt_human_time_diff( $duration = 90 ) { $post_time = get_the_time('U'); $human_time = 'Article plublié '; $now_time = date('U'); // Afficher la date relative si la date de publication est inférieure à $duration (90 jours par défaut) $post_anterieur = $now_time - ( 60 * 60 * 24 * $duration ); if ( $post_time > $post_anterieur) { $human_time .= 'il y a '. human_time_diff( $post_time, current_time( 'timestamp' ) ) ; } else { $human_time .= 'le '. get_the_date(); } return $human_time; } ?>