WP_REST_Block_Directory_Controller::get_items()publicWP 5.5.0

Search and retrieve blocks metadata

Method of the class: WP_REST_Block_Directory_Controller{}

No Hooks.

Return

WP_REST_Response|WP_Error. Response object on success, or WP_Error object on failure.

Usage

$WP_REST_Block_Directory_Controller = new WP_REST_Block_Directory_Controller();
$WP_REST_Block_Directory_Controller->get_items( $request );
$request(WP_REST_Request) (required)
Full details about the request.

Changelog

Since 5.5.0 Introduced.

WP_REST_Block_Directory_Controller::get_items() code WP 6.5.2

public function get_items( $request ) {
	require_once ABSPATH . 'wp-admin/includes/plugin-install.php';
	require_once ABSPATH . 'wp-admin/includes/plugin.php';

	$response = plugins_api(
		'query_plugins',
		array(
			'block'    => $request['term'],
			'per_page' => $request['per_page'],
			'page'     => $request['page'],
		)
	);

	if ( is_wp_error( $response ) ) {
		$response->add_data( array( 'status' => 500 ) );

		return $response;
	}

	$result = array();

	foreach ( $response->plugins as $plugin ) {
		// If the API returned a plugin with empty data for 'blocks', skip it.
		if ( empty( $plugin['blocks'] ) ) {
			continue;
		}

		$data     = $this->prepare_item_for_response( $plugin, $request );
		$result[] = $this->prepare_response_for_collection( $data );
	}

	return rest_ensure_response( $result );
}