Afficher la date et l’heure à la volée selon la langue d’un article dans WordPress n’est pas chose aisée. Après quelques recherches dans le code source du coeur WP et en php, quelques voies possibles sont ici :
Sans changer ou ajouter de balises de thèmes (template tags), the_time(), the_modified_time() sont adaptables (via les filtres) par l’extension xili-language.
Les fonctions filtrantes sont placées dans le fichier functions.php du dossier ‘xilidev-libraries‘ à mettre dans la racine du dossier DES plugins (voir cet article).
function xiliml_comment_date($comment_time,$d = '') { /* params no used because php format */ /* the first param is to be as msgid in .po example: %B %d, %Y - %H:%M or %B %d, %Y at %H:%M */ return the_xili_local_time('%B %d, %Y', strtotime(get_comment_time ('m/d/Y H:i'))); /* impossible to use get_comment_date as it is itself filtered*/ } add_filter('get_comment_date','xiliml_comment_date',10,2); function xiliml_date($thetime,$theformat) { /* param no used because php format */ return the_xili_local_time('%B %d, %Y - %H:%M',strtotime(get_the_time('m/d/Y H:i'))); } add_filter('the_time','xiliml_date',10,2); function xiliml_modified_date($thetime,$theformat) { /* param no used because php format */ return the_xili_local_time('%B %d, %Y - %H:%M',strtotime(get_the_modified_time('m/d/Y H:i'))); } add_filter('the_modified_time','xiliml_modified_date',10,2); |
De base WordPress utilise la fonction php date() et sa série de formats – http://fr2.php.net/manual/en/function.date.php – and and internal static translation tools.
Dans les fonctions filtrantes, l’extension xili-language utilise le format lié à setlocale. Voir – http://fr2.php.net/manual/en/function.strftime.php –
Si le serveur Apache, le php sont bien configurés, cette voie liée à setlocale fonctionne en temps réel à la volée.
Pour le fichier .po, le msgid contient le format ‘%B %d, %Y – %H:%M‘ et sa traduction en français peut-être %d %B %Y – %Hh%M‘
FAQ
* Pourquoi les fonctions filtrantes sont à l’extérieur du plugin et dans ce dossier xilidev-libraries ?
Parce que le webmestre peut modifier ces fonctions sans que celles-ci soient mises à plat lors d’une mise à jour de l’extension elle-même. (Ne pas oublier la détection de ces fonctions en cochant « Active les fonctions xilidev »)
* Pour les paramètres de la fonction the_time() ne sont pas interprétés ?
Parce que leur interprétation en nombre de lignes de code est trop lourde et qu’il est plus simple de changer manuellement le format de date heure.
* Dans la fonction the_time() comment supprimer l’heure ?
Simplement changer ‘%B %d, %Y – %H:%M’ en ‘%B %d, %Y’ .
* Que fait la fonction the_xili_local_time() ?
Cette fonction traduit une date générique et numérique selon le format et la langue de l’article ou selon les règles définies dans le thème.