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();
?>
Laisser un commentaire