Cela fait des années que j’utilise le même thème graphique pour mon site et je n’ai jamais vraiment pris le temps de traduire la date de publication ou de mise à jour des articles en français.
Le tutoriel qui suit ne s’adresse qu’à un cercle réduit de développeurs : il est évidemment bien plus aisé d’installer WordPress en français (avec le langage pack qui convient) ou d’utiliser la fonction PHP setlocale() comme je l’avais fait précédemment avec WP-Date FR.
Dans mon cas bien précis, je n’ai pas accès aux locales étant donné que le serveur est installé en anglais.
Marre des agences qui sous-traitent ?
Avec moi, vous parlez directement au développeur qui fait le travail. Pas d'intermédiaire, pas de promesses creuses. Juste du code propre et un interlocuteur joignable.
Travaillons directement ensemble →Je ne souhaite pas non plus installer la locale française, qui serait alors ajoutée à tous mes paquets Debian.
Et je ne souhaite pas non plus utiliser la traduction française de WordPress. It’s coding time !
La fonction sky_date_french()
Vous pouvez placer cette fonction dans le fichier functions.php de votre thème :
/*
|-----------------------------------------------------------------------
| Sky Date in French by Matt - www.skyminds.net
|-----------------------------------------------------------------------
|
| Returns or echoes the date in French format (dd/mm/YYYY) for WordPress themes.
|
*/
function sky_date_french($format, $timestamp = null, $echo = null) {
$param_D = array('', 'Lun', 'Mar', 'Mer', 'Jeu', 'Ven', 'Sam', 'Dim');
$param_l = array('', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi', 'Dimanche');
$param_F = array('', 'Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre');
$param_M = array('', 'Jan', 'Fév', 'Mar', 'Avr', 'Mai', 'Jun', 'Jul', 'Aoû', 'Sep', 'Oct', 'Nov', 'Déc');
$return = '';
if(is_null($timestamp)) { $timestamp = mktime(); }
for($i = 0, $len = strlen($format); $i < $len; $i++) {
switch($format[$i]) {
case '\\' : // fix.slashes
$i++;
$return .= isset($format[$i]) ? $format[$i] : '';
break;
case 'D' :
$return .= $param_D[date('N', $timestamp)];
break;
case 'l' :
$return .= $param_l[date('N', $timestamp)];
break;
case 'F' :
$return .= $param_F[date('n', $timestamp)];
break;
case 'M' :
$return .= $param_M[date('n', $timestamp)];
break;
default :
$return .= date($format[$i], $timestamp);
break;
}
}
if(is_null($echo)) { return $return;} else { echo $return;}
}Code language: PHP (php)
Fonctionnement
La fonction sky_date_french($format, $timestamp = null, $echo = null) prend 3 arguments :
$format: le format standard de la fonction PHP date(). Ici, nous utiliserons'l d F Y'.$timestamp: la date au format GMT. Sous WordPress, nous utiliseronsget_post_time('U', true)$echo: si $echo est défini, on affiche le résultat, sinon on le renvoie simplement.
Nous utiliserons donc la fonction comme ceci :
sky_date_french('l d F Y', get_post_time('U', true), 1);Code language: JavaScript (javascript)
Les fichiers du thème
J’ai modifié les fichiers suivants : front-page.php, index.php, single.php, page.php et archive.php.
Dans la plupart de ces fichiers, j’ai remplacé :
the_time('l d F Y');Code language: JavaScript (javascript)
par
sky_date_french('l d F Y', get_post_time('U', true), 1);Code language: JavaScript (javascript)
Certains de mes fichiers affichent aussi la date de dernière mise à jour. Voici le code complet :
<section class="post-date updated"><!-- Metadata --> <time datetime="<?php the_time('c'); ?>"><!--?php sky_date_french('l d F Y', get_post_time('U', true), 1); echo " à "; the_time('H:i'); ?--></time> par <span class="vcard author"><span class="fn"><!--?php the_author_posts_link(); ?--></span></span>. <!--?php $u_time = get_the_time('U');
$u_modified_time = get_the_modified_time('U');
if ($u_modified_time -->= $u_time + 86400) { ?>Dernière mise à jour le <time datetime="<?php the_modified_time('c'); ?>"><!--?php sky_date_french('d F Y', get_the_modified_time('U', true), 1); ?--></time> <!--?php } ?--></section>Code language: HTML, XML (xml)
Et voilà, c’était juste pour le sport finalement mais la date est maintenant francisée.
Un projet WordPress en tête ?
Vous avez une idée claire de ce que vous voulez, mais pas les ressources en interne pour le faire bien. Je développe des sites et extensions WordPress sur-mesure — sans délais à rallonge ni mauvaises surprises.
Décrivez-moi votre projet →