My approach to this was wrong, and I didn’t understand the error properly. After taking another look at this, I was able to fix it by replacing this code:
if($request->get_param('id')){
// $author = $request->get_param('author');
$podcastsRequest = new WP_REST_Request( 'GET', '/wp/v2/podcasts?author=1');
$articlesRequest = new WP_REST_Request( 'GET', '/wp/v2/articles?author=1');
$webinarsRequest = new WP_REST_Request( 'GET', '/wp/v2/webinars?author=1');
$expertInterviewsRequest = new WP_REST_Request( 'GET', '/wp/v2/expert-interviews?author=1');
$guidesRequest = new WP_REST_Request( 'GET', '/wp/v2/guides?author=1');
} else {
$podcastsRequest = new WP_REST_Request( 'GET', '/wp/v2/podcasts?author=1' );
$articlesRequest = new WP_REST_Request( 'GET', '/wp/v2/articles?author=1' );
$webinarsRequest = new WP_REST_Request( 'GET', '/wp/v2/webinars?author=1' );
$expertInterviewsRequest = new WP_REST_Request( 'GET', '/wp/v2/expert-interviews?author=1' );
$guidesRequest = new WP_REST_Request( 'GET', '/wp/v2/guides?author=1' );
}
with this code:
if($request->get_param('author')){
$author = $request->get_param('author');
$podcastsRequest = new WP_REST_Request( 'GET', '/wp/v2/podcasts');
$podcastsRequest->set_query_params( array( 'author' => $author ));
$articlesRequest = new WP_REST_Request( 'GET', '/wp/v2/articles');
$articlesRequest->set_query_params( array( 'author' => $author ));
$webinarsRequest = new WP_REST_Request( 'GET', '/wp/v2/webinars');
$webinarsRequest->set_query_params( array( 'author' => $author ));
$expertInterviewsRequest = new WP_REST_Request( 'GET', '/wp/v2/expert-interviews');
$expertInterviewsRequest->set_query_params( array( 'author' => $author ));
$guidesRequest = new WP_REST_Request( 'GET', '/wp/v2/guides');
$guidesRequest->set_query_params( array( 'author' => $author ));
} else {
$podcastsRequest = new WP_REST_Request( 'GET', '/wp/v2/podcasts');
$articlesRequest = new WP_REST_Request( 'GET', '/wp/v2/articles');
$webinarsRequest = new WP_REST_Request( 'GET', '/wp/v2/webinars');
$expertInterviewsRequest = new WP_REST_Request( 'GET', '/wp/v2/expert-interviews');
$guidesRequest = new WP_REST_Request( 'GET', '/wp/v2/guides');
}
This now works as the API endpoint isn’t directly set up to match additional parameters on itself, however passing them through with set_query_params()
did the job!