date query - Get posts only from current calendar week

admin2025-06-05  12

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

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 );
Share Improve this question edited Jan 1, 2019 at 22:01 Krzysiek Dróżdż 25.6k9 gold badges53 silver badges74 bronze badges asked Jan 1, 2019 at 20:11 leandaleanda 1377 bronze badges
Add a comment  | 

1 Answer 1

Reset to default 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...

转载请注明原文地址:http://conceptsofalgorithm.com/Algorithm/1749053495a315958.html

最新回复(0)