Lors que l’on crée un site internet, il est parfois nécessaire de jouer avec les dates. Voici quelques shortcodes que j’ai parfois l’occasion d’utiliser dans mes projets web avec WordPress.
Remettre les pendules à l’heures
Même si cela parait un peu parfois désuet, Il peut être utile d’afficher tout simplement la date du jour, au format texte. Si vous avez un site d’actualités, et même s’il n’y a pas d’actualité chaque jour, la date en cours peut donner une sensation de nouveauté et de site maintenu régulièrement.
Afin de tenir compte de l’heure locale définie par l’administrateur du site et éviter de réinventer la roue (en devant utiliser par exemple les fonction de manipulation date de PHP , par exemple : date_default_timezone_set()
, setlocale()
, time()
, strftime()
, etc.), WordPress propose des fonctions prêtes à utiliser.
On peut ainsi utiliser la fonction wp_date() (qui remplace une fonction bien plus vieille date_i18n()
qui avait quelques défauts).
wp_date()
accepte en premier paramètre les arguments de date en PHP pour son formatage.
Afficher la date du jour
Le shortcode suivant affiche tout simplement la date du jour avec le Jour de la semaine le jour le mois et l’ année, par exemple, pour aujourd’hui :
Nous sommes le jeudi 21 novembre 2024
<?php
/*
* ShortCode [reuhno_datedujour] pour afficher une phrase
* avec la date et l'heure en cours
* Par ex. : 'vendredi 13 mai 2022'
*/
add_shortcode('reuhno_datedujour', function($atts, $content)
{
return utf8_encode( sprintf( __('Nous sommes le %s', "reuhno"), wp_date('l d F Y')));
});
Langage du code : PHP (php)
Pour l’utiliser, il vous suffit d’écrire [reuhno_datedujour]
dans votre article.
Afficher la date du jour et l’heure
Voici une petite variante du shortcode précédent, mais rajoute également l’heure actuelle.
Par exemple :
Nous sommes le jeudi 21 novembre 2024 et il est 11h17
<?php
/*
* ShortCode [reuhno_datedujouretheure]
* pour afficher une phrase avec la date et l'heure en cours
* Par ex. : 'Vendredi 13 mai 2022, il est 22h57
*/
add_shortcode('reuhno_datedujouretheure', function($atts, $content)
{
return utf8_encode( sprintf( __('Nous sommes le %s et il est %s', "reuhno"), wp_date('l d F Y'), wp_date('H\hi')));
});
?>
Langage du code : PHP (php)
Pour l’utiliser, il vous suffit d’écrire [reuhno_datedujouretheure]
dans votre article.
Attention : si vous disposez d’un système de cache sur votre site, la date et/ou l’heure restera celle à laquelle vous avez généré la page, et ce, jusqu’à l’expiration du cache ou jusqu’à la prochaine purge.
Combien d’année depuis ou jusqu’à ?
Si vous êtes développeur⸱euse et feignant·e (pléonasme…), et que vous avez l’occasion dans un texte de parler au passé, vous avez sûrement déjà pensé à utiliser ce type de snippet((Snippet : traduit en français par « extrait », désigne en développement informatique une partie d’un code source pouvant être copiée-collée dans un plug gros programme ou de bout de code)).
Ainsi, plus besoin chaque année de venir changer les dates sur toutes les pages de son site et tenir les comptes.
Pour les moins aguéris et pour celles et ceux qui ne s’étaient jamais posé la question, voici une petite astuce pour écrire des phrases de ce type :
Nous fabriquons les meilleures pizzas à l’ananas depuis plus de 5 ans.
Dans cet exemple, le shortcode est[reuhno_year since="2019"]
La fonction présentée ici est volontairement très basique et ne se base pas sur la date exacte pour calculer mais juste sur une année de référence.
<?php
/*
* ShortCode [reuhno_year] pour l'année en cours
* avec le paramètre since ou to
* selon le sens dans le quel on veut calculer
* ex: [reuhno_year since="2012"]
* ex: [reuhno_year to="2012"]
*/
add_shortcode('reuhno_year', function($atts, $content)
{
extract(shortcode_atts(array(
'since' => '',
'to' => '',
), $atts));
$current_year = intval(date('Y'));
$since = intval($since);
$to = intval($to);
if($since!=0){
return $current_year - $since;
}
else if($to!=0){
return $to - $current_year;
}
else{
return $current_year;
}
});
?>
Langage du code : PHP (php)
En espérant que ces fonctions puissent vous être utiles.
N’hésitez pas à commenter si cela vous a servi ou si vous avez des questions.