Site icon Hip-Hop Website Design and Development

date_query won’t accept day parameter, but will accept month and year for a custom post

I have a frustrating issue. I am using the date_query as referenced in the Codex:

<?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 );

While I can display custom posts as expected if I exclude 'day', I get no posts when it is included in the query. I am using Advanced Custom Fields Pro with the date-picker. I have no idea why this is happening, and I’ve searched tirelessly to determine why my date_query is not working. I am able to echo the date, so I don’t understand where the disconnect is.

/****** RESPONSE TO ANSWERS ******/

Thanks for the responses. I have done a meta_query with what I think is the proper date format, but I am still unable to query only today’s post. Here is the new query:

<?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
                )
            )
    );

Any suggestions? Thanks, again.

/******** SOLUTION **********/

Hi Everyone,

So, I found a solution that works. I changed the type to “DATE”. It’s interesting that in other examples where folks want to show todays date and beyond, they use a “Numeric” type. I guess it makes some sense, but I’m going to jump into the Codex to understand this more. I appreciate all of your help. Here is the solution that works:

                        <?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
                                            )
                                        )
                                );