Get posts only from current calendar week

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(
        array(
            'year' = date( 'Y' ),
             'week' = date( 'W' ),
        ),
    ),
    'post_type' = 'ride', 'posts_per_page' = 99, 'order' = 'DEC',
);
$leaders = new WP_Query( $args );

Topic date-query Wordpress

Category Web


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...

About

Geeks Mental is a community that publishes articles and tutorials about Web, Android, Data Science, new techniques and Linux security.