wp query – date_query nie zaakceptuje parametru dnia, ale zaakceptuje miesiąc i rok dla niestandardowego postu
Mam frustrujący problem. korzystam z date_query
jak podano w Kodeksie:
<?php
$today = getdate();
$args = array(
'post_type' => 'Lighting',
'post_status' => 'publish',
'posts_per_page' => 1,
'date_query' => array(
array(
'year' => $today['year'],
'month' => $today['mon'],
'day' => $today['mday'],
),
),
);
$the_query = new WP_Query( $args );
Chociaż mogę wyświetlać niestandardowe posty zgodnie z oczekiwaniami, jeśli wykluczę 'day'
, nie otrzymuję żadnych postów, gdy jest uwzględniony w zapytaniu. ja używam Zaawansowane pola niestandardowe Pro z date-picker
. Nie mam pojęcia, dlaczego tak się dzieje, i niestrudzenie szukałem, aby ustalić, dlaczego mój date_query
nie działa. Jestem w stanie powtórzyć datę, więc nie rozumiem, gdzie jest rozłączenie.
/***** ODPOWIEDZI NA ODPOWIEDZI ******/
Dzięki za odpowiedzi. Zrobiłem meta_query z tym, co moim zdaniem jest właściwym formatem daty, ale nadal nie mogę zapytać tylko o dzisiejszy post. Oto nowe zapytanie:
<?php // Let's get the data we need to loop through below
$args = array(
'post_type' => 'carillon', // Tell WordPress which post type we want
'orderby' => 'meta_value', // We want to organize the events by date
'meta_key' => 'date_of_lighting', // Grab the "date_of_event" field created via "date-picker" plugin (stored in ‘YYYYMMDD’)
'posts_per_page' => '1', // Let's show just one post.
'meta_query' => array( // WordPress has all the results, now, return only the event on today's date
array(
'key' => 'date_of_lighting', // Check the s"date_of_lighting field
'value' => date("Y-M-D"), // Set today's date (note the similar format)
'compare' => '=', // Return only today's post
'type' => 'NUMERIC' // Let WordPress know we're working with numbers
)
)
);
Jakieś sugestie? Dzięki jeszcze raz.
/******** ROZWIĄZANIE **********/
Cześć wszystkim,
Więc znalazłem rozwiązanie, które działa. Zmieniłem typ na „DATA”. Interesujące jest to, że w innych przykładach, w których ludzie chcą pokazać dzisiejszą datę i później, używają typu „Numeryczny”. Myślę, że ma to jakiś sens, ale zamierzam wskoczyć do Kodeksu, aby lepiej to zrozumieć. Doceniam twoją pomoc. Oto rozwiązanie, które działa:
<?php // Let's get the data we need to loop through below
$args = array(
'post_type' => 'carillon', // Tell WordPress which post type we want
'orderby' => 'meta_value', // We want to organize the events by date
'meta_key' => 'date_of_lighting', // Grab the "date_of_event" field created via "date-picker" plugin (stored in ‘YYYYMMDD’)
'posts_per_page' => '1', // Let's show just one post.
'meta_query' => array( // WordPress has all the results, now, return only the event for today's date
array(
'key' => 'date_of_lighting', // Check the s"date_of_lighting field
'value' => date("Y-m-d"), // Set today's date (note the similar format)
'compare' => '=', // Return only today's post
'type' => 'DATE' // Let WordPress know we're working with a date
)
)
);