[WordPress] Affichez des dates « humaines » sur vos blogs

 

Sur internet, tout va de plus en plus vite. La masse d’information et les commentaires publiés sont très nombreux.

A tel point qu’il devient difficile de s’y retrouver. Je pense notamment aux dates. Sur ce blog par exemple, même si je viens de publier un article ou si un commentaire vient d’être posté, quelque chose de la forme publié le jj/mm/aaaa à hh:mm sera affiché.

commentaires websourcing fr [Wordpress] Affichez des dates humaines sur vos blogs

Je trouve que cela manque de spontanéité et que cela nuit à l’interactivité. S’il y avait écrit « machin à publié un commentaire il y a 2 minutes« , cela inviterait plus à répondre et à engager une conversation, à mon sens.

J’ai trouvé coup sur coup deux techniques permettant de réaliser ce genre de choses.

add_filter('the_time', 'timeago');

function timeago()
{
    global $post;

    $date = $post->post_date;

    $time = get_post_time('G', true, $post);

    $time_diff = time() - $time;

    if ( $time_diff > 0 && $time_diff < 24*60*60 )
        $display = sprintf( __('%s ago'), human_time_diff( $time ) );
    else
        $display = date(get_option('date_format'), strtotime($date) );

    return $display;
}

Ce bout de code, à coller dans votre fichier functions.php, remplacera automatiquement l’appel à the_time(), utilisé un peu partout dans les thèmes, par un affichage du type « il y a 5 minutes » ou il y a « 12 heures » et « le 16 avril 2010″ au delà de 24h.

Plutôt sympa non ? En plus il ne faut même pas modifier le thème. Ça c’est top !

L’autre technique prend en compte les commentaires, en plus des billets :

function time_ago( $type = 'post' ) {
	$d = 'comment' == $type ? 'get_comment_time' : 'get_post_time';
	return human_time_diff($d('U'), current_time('timestamp')) . " " . __('ago');
}

A cette occasion j’ai appris l’existence de la fonction human_time_diff().

En combinant les deux méthodes, on doit pouvoir arriver à quelque chose de performant, court et pratique.

Crédits: aext et wprecipe