0

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

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, privacy policy and cookie policy

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