Ich versuche, Daten von unten Abfrage zu bekommen. Ich will Ergebnis zwischen zwei Daten von ersten Schlüssel und anderen Schlüsselwert, wenn gleich 1 aber Abfrage gibt Wert für mich nur die heutigen Datumsangaben und in SQL hinzufügen OR Beziehung. Bitte helfen Sie mir, das Falsche herauszufinden und eine Korrektur zu bekommen.Wordpress mehrere Meta-Abfrage
Mein Code ist
$curent_date = date('Y-m-d');
$start_date = date('Y-m-d 00:00:01', strtotime($curent_date."- 4 day"));
$end_date = date('Y-m-d 23:59:59', strtotime($curent_date."+ 4 day"));
$events_query = new WP_Query(array(
'post_type' => array('tribe_events'),
'post_status' => 'publish',
'meta_key' => '_EventStartDate',
'orderby' => 'meta_value',
'order' => 'DESC',
'meta_query' => array(
'relation' => 'AND',
array(
'key' => '_EventStartDate',
'value' => array($start_date, $end_date),
'compare' => 'BETWEEN'
),
array(
'key' => 'agenda',
'value' => 1,
'compare' => '='
),
),));
print_r($events_query->request);
print_r($events_query->posts);
Return SQL ist
SELECT SQL_CALC_FOUND_ROWS DISTINCT wp_posts.*, MIN(wp_postmeta.meta_value) as EventStartDate, MIN(tribe_event_end_date.meta_value) as EventEndDate FROM wp_posts INNER JOIN wp_postmeta ON (wp_posts.ID = wp_postmeta.post_id) INNER JOIN wp_postmeta AS mt1 ON (wp_posts.ID = mt1.post_id) INNER JOIN wp_postmeta AS mt2 ON (wp_posts.ID = mt2.post_id) INNER JOIN wp_postmeta AS mt3 ON (wp_posts.ID = mt3.post_id) LEFT JOIN wp_postmeta as tribe_event_end_date ON (wp_posts.ID = tribe_event_end_date.post_id AND tribe_event_end_date.meta_key = '_EventEndDate') WHERE 1=1 AND (
wp_postmeta.meta_key = '_EventStartDate'
AND
(
mt1.meta_key = '_EventStartDate'
AND
(mt2.meta_key = '_EventStartDate' AND mt2.meta_value BETWEEN '2017-05-22 00:00:01' AND '2017-05-30 23:59:59')
AND
(mt3.meta_key = 'agenda' AND mt3.meta_value = '1')
)
) AND wp_posts.post_type = 'tribe_events' AND ((wp_posts.post_status = 'publish')) AND **(wp_postmeta.meta_value >= '2017-05-26 02:58:14' OR (wp_postmeta.meta_value <= '2017-05-26 02:58:14' AND tribe_event_end_date.meta_value >= '2017-05-26 02:58:14')) GROUP BY wp_posts.ID ORDER BY EventStartDate DESC, wp_postmeta.meta_value DESC LIMIT 0, 10
Vielen Dank im Voraus.
Nr diesem Code können versuchen, beide nicht arbeiten. Bitte schau auf meine sql und da ist das Hauptproblem. Fettdruck ist ein falsches Ergebnis. Nur das heutige Ergebnis. –
Ihr Code in meinem Server http://downpublic.info/wpdemo/RS1991_ElseVillano/ –
aber für mich fügen Sie diese ** ODER (wp_postmeta.meta_value <= '2017-05-26 05:30:23' UND tribe_event_end_date.meta_value > = '2017-05-26 05:30:23')) GROUP BY wp_posts.ID ORDER BY EreignisStartDate DESC, wp_postmeta.meta_value DESC LIMIT 0, 10 ** –