LLMS_REST_Controller::add_header_pagination( WP_REST_Response $response, array $pagination, WP_REST_Request $request )
Add pagination info and links to the response header.
Parameters Parameters
- $response
-
(WP_REST_Response) (Required) Current response being served.
- $pagination
-
(array) (Required) Pagination array.
- $request
-
(WP_REST_Request) (Required) Full details about the request.
Return Return
(WP_REST_Response)
Source Source
File: libraries/lifterlms-rest/includes/abstracts/class-llms-rest-controller.php
protected function add_header_pagination( $response, $pagination, $request ) {
$response->header( 'X-WP-Total', $pagination['total_results'] );
$response->header( 'X-WP-TotalPages', $pagination['total_pages'] );
$base = add_query_arg( urlencode_deep( $request->get_query_params() ), rest_url( $request->get_route() ) );
// First page link.
if ( 1 !== $pagination['current_page'] ) {
$first_link = add_query_arg( 'page', 1, $base );
$response->link_header( 'first', $first_link );
}
// Previous page link.
if ( $pagination['current_page'] > 1 ) {
$prev_page = $pagination['current_page'] - 1;
if ( $prev_page > $pagination['total_pages'] ) {
$prev_page = $pagination['total_pages'];
}
$prev_link = add_query_arg( 'page', $prev_page, $base );
$response->link_header( 'prev', $prev_link );
}
// Next page link.
if ( $pagination['total_pages'] > $pagination['current_page'] ) {
$next_link = add_query_arg( 'page', $pagination['current_page'] + 1, $base );
$response->link_header( 'next', $next_link );
}
// Last page link.
if ( $pagination['total_pages'] && $pagination['total_pages'] !== $pagination['current_page'] ) {
$last_link = add_query_arg( 'page', $pagination['total_pages'], $base );
$response->link_header( 'last', $last_link );
}
return $response;
}
Expand full source code Collapse full source code View on GitHub
Changelog Changelog
| Version | Description |
|---|---|
| 1.0.0-beta.7 | Introduced. |