Get posts only from current calendar week
-
14-04-2021 - |
Question
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 );
Solution
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...
Licensed under: CC-BY-SA with attribution
Not affiliated with wordpress.stackexchange