LLMS_REST_Controller::get_items( WP_REST_Request $request )
Retrieves all items.
Parameters Parameters
- $request
-
(WP_REST_Request) (Required) Full details about the request.
Return Return
(WP_REST_Response|WP_Error) Response object on success, or WP_Error object on failure.
Source Source
File: libraries/lifterlms-rest/includes/abstracts/class-llms-rest-controller.php
public function get_items( $request ) {
$prepared = $this->prepare_collection_query_args( $request );
if ( is_wp_error( $prepared ) ) {
return $prepared;
}
$query = $this->get_objects_query( $prepared, $request );
$pagination = $this->get_pagination_data_from_query( $query, $prepared, $request );
// Out-of-bounds, run the query again on page one to get a proper total count.
if ( $pagination['total_results'] < 1 ) {
$prepared_for_total_count = $this->prepare_args_for_total_count_query( $prepared, $request );
$count_query = $this->get_objects_query( $prepared_for_total_count, $request );
$count_results = $this->get_pagination_data_from_query( $count_query, $prepared_for_total_count, $request );
$pagination['total_results'] = $count_results['total_results'];
}
if ( $pagination['current_page'] > $pagination['total_pages'] && $pagination['total_results'] > 0 ) {
return llms_rest_bad_request_error( __( 'The page number requested is larger than the number of pages available.', 'lifterlms' ) );
}
$objects = $this->get_objects_from_query( $query );
$items = $this->prepare_collection_items_for_response( $objects, $request );
$response = rest_ensure_response( $items );
$response = $this->add_header_pagination( $response, $pagination, $request );
return $response;
}
Expand full source code Collapse full source code View on GitHub
Changelog Changelog
| Version | Description |
|---|---|
| 1.0.0-beta.7 | Broken into several methods so to improve abstraction. |
| 1.0.0-beta.3 | Fix an issue displaying a last page for lists with 0 possible results. |
| 1.0.0-beta.12 | Return early if prepare_collection_query_args() is a WP_Error. |
| 1.0.0-beta.1 | Introduced. |