J'ai cherché WP Codex et StackExchange et obtenu quelques indices, mais cette requête ne fonctionne pas. J'ai deux champs personnalisés associés à chaque exposition au format Y-m-d: exstart-date étant la date de début de l'exposition et exend-date étant la date de fin.
Je peux facilement afficher les expositions à venir et les expositions passées, mais je ne peux pas obtenir le droit meta_query d'afficher les expositions actuelles (avec une date de début inférieure ou égale à aujourd'hui ET une date de fin supérieure ou égale à aujourd'hui). Le code ci-dessous n'affiche rien sur la page. Aidez-moi?
$paged = ( get_query_var('paged') ) ? get_query_var('paged') : 1;
$today = date('Y-m-d', strtotime('-6 hours'));
query_posts(array(
'post_type' => 'exhibitions',
'posts_per_page' => 6,
'paged' => $paged,
'orderby' => 'title',
'order' => 'DESC',
'meta_query'=>array(
'relation'=>'AND',
array(
'key' => 'exstart-date',
'value' => $today,
'compare' => '<=',
'type' => 'CHAR'
),
array(
'key' => 'exend-date',
'value' => $today,
'compare' => '>=',
'type' => 'CHAR'
)
)
));
if (have_posts()) :
while (have_posts()) : the_post();
Voici le code que j'ai fini avec qui fonctionne. J'aurais dû mentionner que la requête se trouvait dans la boucle, car lorsque je l'ai montrée à Damian Taggart de Mindshare Studios, il a remarqué qu'il disait que je devrais utiliser WP_Query plutôt que query_posts. Merci à Milo et à d’autres d’avoir tenté de m’aider sans toutes les informations nécessaires.
<?php
$paged = ( get_query_var('paged') ) ? get_query_var('paged') : 1;
$today = date('Y-m-d', strtotime('-6 hours'));
$myquery = new WP_Query(array(
'post_type' => 'exhibitions',
'posts_per_page' => 6,
'paged' => $paged,
'orderby' => 'title',
'order' => 'ASC',
'meta_query'=>array(
'relation'=>'AND',
array(
'key' => 'exstart-date',
'value' => $today,
'compare' => '<=',
'type' => 'CHAR'
),
array(
'key' => 'exend-date',
'value' => $today,
'compare' => '>=',
'type' => 'CHAR'
)
)
));
if ($myquery->have_posts()) :
while ($myquery->have_posts()) : $myquery->the_post();
?>