get_param('page'); $totalPages = (int) ceil($totalItems / $perPage); // Add total headers $response->header('X-WP-Total', $totalItems); $response->header('X-WP-TotalPages', $totalPages); // Build base URL for pagination links $base = add_query_arg( map_deep($request->get_query_params(), function ($value) { if (is_bool($value)) { $value = $value ? 'true' : 'false'; } return urlencode($value); }), rest_url($routeBase) ); // Add prev link header if ($page > 1) { $prevPage = $page - 1; if ($prevPage > $totalPages) { $prevPage = $totalPages; } $response->link_header('prev', add_query_arg('page', $prevPage, $base)); } // Add next link header if ($totalPages > $page) { $nextPage = $page + 1; $response->link_header('next', add_query_arg('page', $nextPage, $base)); } return $response; } }