Cum să interoghezi un tip de postare personalizat cu 2 câmpuri personalizate (interval de date)
Am căutat în WP Codex și StackExchange și am obținut câteva indicii, dar nu reușesc să fac această interogare să funcționeze. Am 2 câmpuri personalizate asociate fiecărei expoziții în format Y-m-d: exstart-data fiind data de început a expoziției și exend-data fiind data de încheiere.
Pot afișa cu ușurință expozițiile viitoare și cele trecute, dar nu reușesc să configurez corect meta_query pentru a afișa expozițiile curente (cu o dată de început mai mică sau egală cu ziua de astăzi ȘI dată de încheiere mai mare sau egală cu ziua de astăzi). Codul de mai jos nu afișează nimic pe pagină. Ajutor?
$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', // Cheia pentru data de început
'value' => $today,
'compare' => '<=', // Mai mic sau egal cu
'type' => 'CHAR' // Tipul câmpului
),
array(
'key' => 'exend-date', // Cheia pentru data de sfârșit
'value' => $today,
'compare' => '>=', // Mai mare sau egal cu
'type' => 'CHAR' // Tipul câmpului
)
)
));
if (have_posts()) :
while (have_posts()) : the_post();

Iată codul cu care am rămas și care funcționează. Trebuia să menționez că interogarea era în interiorul buclei, pentru că atunci când i l-am arătat lui Damian Taggart de la Mindshare Studios, el a observat și a spus că ar trebui să folosesc WP_Query în loc de query_posts. Mulțumesc lui Milo și altora care au încercat să mă ajute fără a avea toate informațiile necesare.
<?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', // tipul postării
'posts_per_page' => 6, // numărul de postări pe pagină
'paged' => $paged, // paginare
'orderby' => 'title', // ordonare după titlu
'order' => 'ASC', // ordine crescătoare
'meta_query'=>array( // interogare meta
'relation'=>'AND', // relație între condiții
array(
'key' => 'exstart-date', // cheie pentru data de început
'value' => $today, // valoare comparată
'compare' => '<=', // operator de comparare
'type' => 'CHAR' // tipul datelor
),
array(
'key' => 'exend-date', // cheie pentru data de sfârșit
'value' => $today, // valoare comparată
'compare' => '>=', // operator de comparare
'type' => 'CHAR' // tipul datelor
)
)
));
if ($myquery->have_posts()) : // verifică dacă există postări
while ($myquery->have_posts()) : $myquery->the_post(); // începe bucla
?>
