@@ -200,21 +200,22 @@ public function get_items( $request ): WP_REST_Response {
200200 $ all_snippets = get_snippets ( [], $ network );
201201 $ all_snippets = $ this ->get_network_items ( $ all_snippets , $ network );
202202
203- // Get collection params (page, per_page).
204- $ collection_params = $ this ->get_collection_params ();
205- $ per_page_request = (int ) $ request ->get_param ( 'per_page ' );
206- $ per_page = max ( 1 , $ per_page_request ? $ per_page_request : (int ) $ collection_params ['per_page ' ]['default ' ] );
207-
208- $ page_request = (int ) $ request ->get_param ( 'page ' );
209- $ page = max ( 1 , $ page_request ? $ page_request : (int ) $ collection_params ['page ' ]['default ' ] );
210-
211- // Count total items
212203 $ total_items = count ( $ all_snippets );
213- $ total_pages = (int ) ceil ( $ total_items / $ per_page );
214-
215- // Slice the full list to the requested page.
216- $ offset = ( $ page - 1 ) * $ per_page ;
217- $ snippets = array_slice ( $ all_snippets , $ offset , $ per_page );
204+ $ query_params = $ request ->get_query_params ();
205+
206+ if ( isset ( $ query_params ['per_page ' ] ) ) {
207+ $ collection_params = $ this ->get_collection_params ();
208+ $ per_page = max ( 1 , (int ) $ query_params ['per_page ' ] );
209+ $ page_request = (int ) $ request ->get_param ( 'page ' );
210+ $ page = max ( 1 , $ page_request ? $ page_request : (int ) $ collection_params ['page ' ]['default ' ] );
211+ $ total_pages = (int ) ceil ( $ total_items / $ per_page );
212+
213+ $ offset = ( $ page - 1 ) * $ per_page ;
214+ $ snippets = array_slice ( $ all_snippets , $ offset , $ per_page );
215+ } else {
216+ $ snippets = $ all_snippets ;
217+ $ total_pages = 1 ;
218+ }
218219
219220 $ snippets_data = [];
220221
0 commit comments