NB: Make sure you do a back up of your theme, files and database before attempting the tutorials
Last modified : Oct 01 2022
Estimated reading time : 1 minute, 38 seconds - 172 words
Share the post "WordPress Query: Display Post Type Results with Two Date Fields"
With this tutorial, we want to return Post Type results with two date fields. In order to do so, we first need to create a Post Type. For our example, we already have a promotions Post Type. Within this Post Type, we’ve added a metabox with Two date type fields.
Both Date type fields will contain the Date field (Metakey) for the event start date and end date. Here are both field IDs:start-date-promotion and end-date-promotion.
With our Post Type and both fields with a specific date added, we need to initialize today’s date before our arguments so we can compare our meta query with the today’s date.
Display Post Type Results with Two Date Fields.
(For our example, we display on-going promotions.)
<?php // WP_Query arguments $today = date('Y-m-d'); $args = array( 'post_type' => array( 'promotions' ), 'meta_query' => array( array( 'key' => 'date-debut-promotion', 'compare' => '<=', 'value' => $today, ), array( 'key' => 'date-fin-promotion', 'compare' => '>=', 'value' => $today, ) ), ); // The Query $query = new WP_Query( $args ); // The Loop if ( $query->have_posts() ) { while ( $query->have_posts() ) { $query->the_post(); ?> // Afficher votre loop ici <?php } } else { ?> <?php } ?> <?php wp_reset_postdata(); ?>
So we have created a variable that stores today’s day and then we create our query and finally we assign a meta query or a date field start-date-promotion that needs to be lower or equal to today’s date and that the end-date-promotion is greater or equal than today’s date.