WordPress

wp query – date_query nie zaakceptuje parametru dnia, ale zaakceptuje miesiąc i rok dla niestandardowego postu

  • 4 lipca, 2016
  • 3 min read
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.

Warto przeczytać!  plugins - Moja witryna jest zepsuta z mnóstwem kodów

/******** 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
                                            )
                                        )
                                );


Źródło

Warto przeczytać!  Błąd analizy PHP: błąd składni, nieoczekiwany token „koniec”