isset( $args['post_types'] ) ? $args['post_types'] : [ 'post' ], 'post_status' => 'publish', 'posts_per_page' => -1, 'fields' => 'ids', ]; $date_query = []; $range = isset( $args['date_range'] ) ? $args['date_range'] : 'all_time'; if ( 'all_time' !== $range ) { $date_query['after'] = $this->get_date_for_range( $range ); } if ( ! empty( $date_query ) ) { $query_args['date_query'] = [ $date_query ]; } $query = new WP_Query( $query_args ); return [ 'post_ids' => $query->posts, 'post_count' => $query->post_count, ]; } private function get_date_for_range( $range ) { switch ( $range ) { case 'last_year': return '1 year ago'; case 'last_90_days': return '90 days ago'; case 'last_60_days': return '60 days ago'; case 'last_30_days': return '30 days ago'; default: return ''; } } }