Requête WordPress : Afficher les résultats d'un Post Type entre deux champs date.
Intermédiaire

Dans ce tutoriel, on voudrait effectuer une requête pour afficher les résultats d’un Post Type entre deux champs date. Bien sur, pour se faire, il faut dans un premier temps un Post type de créé. Dans notre exemple, nous avons déjà un Post Type du nom de promotions. Nous avons inséré dans notre post type une metabox avec deux champs de type Date.

Les deux champs de type Date vont stocker dans notre exemple le champs Date (Metakey) pour le départ de l’évènement, et le deuxième champ va stocker la fin de l’évènement. Voici les deux IDS des champs : date-debut-promotion et date-fin-promotion.

Pour effectuer notre requête, nous devons donc, en ayant notre Post Type et nos deux champs remplis d’une date, initialiser notre jour d’aujourd’hui avant nos arguments pour que nous puissions comparer dans notre meta query avec la date d’aujourd’hui.

Afficher les résultats d’un Post Type entre deux champs date.

(Dans notre exemple, on affiche les promotions actuelles ou en vigueur.)

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

Donc comme ci-dessus, on a créé une variable qui va stocker la date d’aujourd’hui, puis nous effectuons notre requête, et enfin nous donnons une meta query ou la date champs date-debut-promotion doit être plus petite ou égale à la date d’aujourd’hui, et que la date champs date-fin-promotion est plus grande ou égale à la date d’aujourd’hui.

NB : Faire une sauvegarde de votre thème, de votre fichier et/ou votre base de données avant d’ajouter ces fonctions tutoriels.

Leave a Reply

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>