init_request( $request ); // Get query args. $args = $this->get_args( $request ); // Get query results. $results = $this->get_results( $args ); if( is_wp_error($results) ) { return $results; } // Return response. return array( 'results' => $results, 'more' => $this->more ); } /** * init_request * * Called at the beginning of a request to setup properties. * * @date 23/5/19 * @since 5.8.1 * * @param array $request The request args. * @return void */ function init_request( $request ) { // Get field for this query. if( isset($request['field_key']) ) { $this->field = acf_get_field( $request['field_key'] ); } // Update query properties. if( isset($request['page']) ) { $this->page = intval($request['page']); } if( isset($request['per_page']) ) { $this->per_page = intval($request['per_page']); } if( isset($request['search']) && acf_not_empty($request['search']) ) { $this->search = sanitize_text_field($request['search']); $this->is_search = true; } if( isset($request['post_id']) ) { $this->post_id = $request['post_id']; } } /** * get_args * * Returns an array of args for this query. * * @date 31/7/18 * @since 5.7.2 * * @param array $request The request args. * @return array */ function get_args( $request ) { // Allow for custom "query" arg. if( isset($request['query']) ) { return (array) $request['query']; } return array(); } /** * get_items * * Returns an array of results for the given args. * * @date 31/7/18 * @since 5.7.2 * * @param array args The query args. * @return array */ function get_results( $args ) { return array(); } /** * get_item * * Returns a single result for the given item object. * * @date 31/7/18 * @since 5.7.2 * * @param mixed $item A single item from the queried results. * @return array An array containing "id" and "text". */ function get_result( $item ) { return false; } } endif; // class_exists check