I'm building a weekly leaderboard and trying to display posts from on the current calendar week Monday to Sunday. I've tried the code below, but it's only retrieving a post from today (Tuesday 1st January) and no posts from the day before (Monday 31st December). Any ideas? Thanks!

$args = array(
    'date_query' => array(
            'year' => date( 'Y' ),
             'week' => date( 'W' ),
    'post_type' => 'ride', 'posts_per_page' => 99, 'order' => 'DEC',
$leaders = new WP_Query( $args );

1 Answer 1


I think I know what happens here...

Most probably that Monday is another week - last one in 2018, and it makes sense. Last day of 2018 can’t be the first week of 2019 ;)

So I would query it in a different way:

'date_query' => array(
    'after' => '-' . (intval(date('N')) - 1) . 'days',
    'inclusive' => true

What it does is takes all posts published after given date. And to compute that date we take current day and substract the current day of the week - so we get last Monday...


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.