
Apprenez à ordonner des articles comme des événements ou un agenda selon leur date effective avec WordPress. Dans cet exemple on utilise le plugin ACF pour créer le champs Date puis une boucle PHP pour afficher les Événements selon leur date, tout en les classant temporellement du plus proche au plus lointain.
Un type de contenu personnalisé (custom post type) "Événement" est créé au préalable puis on lui affecte le champs ACF Date.
Créer le champs Date dans ACF
Créer le champs Date dans ACF et veiller à ce que le "Format dans le modèle" soit réglé comme Ymd
WP_Query pour afficher un contenu par champs Date ACF
Le code PHP suivant permet d'afficher mon post_type "evenement" selon la date du champs ACF Date que j'ai nommé dans l'exemple "date_de_levenenement".
De plus, les Événements sont classés du plus proche au plus lointain par rapport à la date actuelle. Aussi les Événements ayant une date révolue n'apparaissent pas.
C'est rendu possible grâce au "compare" qui indique que l'on tient compte uniquement des Événements dont la date est supérieur ou égale à la date d'aujourd'hui ">=".
<?php
$date_query = array(
array(
'key' => 'date_de_levenement', //Identifiant ou slug du champs ACF servant de Date
'value' => date('Ymd'),
'type' => 'DATE',
'compare' => '>='
)
);
$args = array(
'post_type' => 'evenement', //Identifiant ou slug du type de post
'posts_per_page' => '5', //Nombre de posts à afficher
'order' => 'ASC',
'post_status' => 'publish',
'orderby' => 'meta_value_num',
'meta_key' => 'date_de_levenement', //Identifiant ou slug du champs ACF servant de Date
'meta_query' => $date_query
);
$query_posts = new WP_Query( $args );
if ($query_posts->have_posts()) :?>
<?php while ( $query_posts->have_posts() ) : $query_posts->the_post();
//Mon contenu ici
endwhile;
endif;
wp_reset_query();
?>
Bonjour :
comment afficher un le date actuelle dans un champs de formulaire .
merci
Bonjour Omar,
De façon générale, tu peux afficher la date en front-end avec :
echo date('d/m/Y'); // Résultat : 23/04/2025
Si tu veux pré-remplir un champ date avec la date du jour, tu peux utiliser le hook acf/load_value ou acf/load_field.
function my_acf_default_today_date( $value, $post_id, $field ) {
// Si aucun contenu n'est encore enregistré
if( empty($value) ) {
$value = date('Ymd'); // Format ACF pour les dates
}
return $value;
}
add_filter('acf/load_value/name=nom_du_champ', 'my_acf_default_today_date', 10, 3);
Dans add_filter ci-dessus, veille à bien remplacer « nom_du_champs » par celui de ton champs ACF