Selon la documentation officielle de WordPress, « post_modified » est mis à jour à chaque enregistrement d’un article, qu’il s’agisse d’une modification mineure ou d’une refonte complète du contenu. C’est précisément cette information, déjà présente dans la base de données, qui permet d’afficher automatiquement la fraîcheur d’un menu de restaurant sans jamais demander au gérant de la saisir lui-même.
Un restaurant qui change sa carte selon la saison ou l’arrivage veut souvent rassurer le visiteur : voir écrit « menu mis à jour il y a trois jours » donne davantage confiance qu’une carte figée depuis des mois sans aucune indication de date.
Pourquoi éviter un champ de date manuel
La première idée qui vient est d’ajouter un champ personnalisé « date de mise à jour du menu », rempli à la main par le gérant à chaque changement. Le problème est immédiat : dès qu’un oubli survient, la date affichée devient mensongère, ce qui est pire que de ne rien afficher du tout.
WordPress connaît déjà, en toute fiabilité, la date de dernière modification de chaque contenu. Autant s’appuyer dessus plutôt que de dupliquer l’information dans un champ que personne ne pensera à maintenir.
Afficher la date avec get_the_modified_date

La fonction get_the_modified_date() renvoie la date de dernière modification de l’article courant, formatée selon les réglages du site ou un format personnalisé passé en paramètre.
function afficher_fraicheur_menu( $post_id ) {
$derniere_modif = get_the_modified_date( 'U', $post_id );
$jours_ecoules = floor( ( current_time( 'timestamp' ) - $derniere_modif ) / DAY_IN_SECONDS );
if ( $jours_ecoules === 0 ) {
return 'Menu mis à jour aujourd\'hui';
}
if ( $jours_ecoules === 1 ) {
return 'Menu mis à jour hier';
}
return sprintf( 'Menu mis à jour il y a %d jours', $jours_ecoules );
}
Le format relatif (« il y a X jours ») se lit plus naturellement qu’une date absolue, surtout pour un visiteur pressé qui consulte la fiche depuis son téléphone avant de réserver une table.
Distinguer les modifications qui comptent
Toute modification de l’article déclenche la mise à jour de post_modified, y compris une simple correction de faute d’orthographe sans lien avec le menu. Pour éviter d’afficher une fausse fraîcheur, il est préférable de restreindre le suivi au seul champ contenant le menu, via un champ personnalisé dédié plutôt que la date globale de l’article.
add_action( 'acf/save_post', function( $post_id ) {
if ( get_post_type( $post_id ) !== 'restaurant' ) {
return;
}
update_field( 'menu_derniere_maj', current_time( 'mysql' ), $post_id );
}, 20 );
Adapter le ton selon l’ancienneté
- Moins de 7 jours : mention positive et rassurante
- Entre une semaine et un mois : simple date, sans commentaire
- Plus d’un mois : masquer la mention plutôt que d’afficher une ancienneté qui inquiète
Cette dernière règle évite l’effet inverse de celui recherché : une carte affichée comme n’ayant pas changé depuis six mois inquiète davantage qu’une absence totale d’indication.
Où placer la mention sur la fiche
Un emplacement discret près du titre du menu, plutôt qu’en tête de page, évite de donner une importance disproportionnée à cette information secondaire. Elle reste utile mais ne doit jamais concurrencer visuellement le nom du restaurant ou les horaires d’ouverture.
Une date affichée sans contexte ne rassure personne : toujours l’associer à un texte qui explique ce qu’elle signifie pour le visiteur.
Étendre la logique à d’autres contenus du site
Le même principe s’applique aisément aux horaires d’ouverture, souvent modifiés en période de fêtes, ou à une page « informations pratiques » régulièrement ajustée. Plutôt que de dupliquer la fonction pour chaque cas, une version générique acceptant en paramètre le nom du champ personnalisé à surveiller évite de réécrire la même logique à chaque nouveau besoin.
function afficher_fraicheur_champ( $post_id, $nom_champ ) {
$valeur = get_field( $nom_champ, $post_id );
if ( empty( $valeur ) ) {
return '';
}
$jours_ecoules = floor( ( current_time( 'timestamp' ) - strtotime( $valeur ) ) / DAY_IN_SECONDS );
return sprintf( 'Mis à jour il y a %d jours', $jours_ecoules );
}
En résumé
S’appuyer sur les dates natives de WordPress évite d’ajouter une source d’erreur supplémentaire et donne au visiteur une information fiable, calculée automatiquement à chaque affichage. La gestion des allergènes, elle, répond à des obligations distinctes et mérite un traitement séparé du simple affichage de fraîcheur.