WP_REST_Widget_Types_Controller::register_routes()publicWP 5.8.0

Registers the widget type routes.

Method of the class: WP_REST_Widget_Types_Controller{}

No Hooks.

Return

null. Nothing (null).

Usage

$WP_REST_Widget_Types_Controller = new WP_REST_Widget_Types_Controller();
$WP_REST_Widget_Types_Controller->register_routes();

Notes

Changelog

Since 5.8.0 Introduced.

WP_REST_Widget_Types_Controller::register_routes() code WP 6.5.2

public function register_routes() {
	register_rest_route(
		$this->namespace,
		'/' . $this->rest_base,
		array(
			array(
				'methods'             => WP_REST_Server::READABLE,
				'callback'            => array( $this, 'get_items' ),
				'permission_callback' => array( $this, 'get_items_permissions_check' ),
				'args'                => $this->get_collection_params(),
			),
			'schema' => array( $this, 'get_public_item_schema' ),
		)
	);

	register_rest_route(
		$this->namespace,
		'/' . $this->rest_base . '/(?P<id>[a-zA-Z0-9_-]+)',
		array(
			'args'   => array(
				'id' => array(
					'description' => __( 'The widget type id.' ),
					'type'        => 'string',
				),
			),
			array(
				'methods'             => WP_REST_Server::READABLE,
				'callback'            => array( $this, 'get_item' ),
				'permission_callback' => array( $this, 'get_item_permissions_check' ),
				'args'                => $this->get_collection_params(),
			),
			'schema' => array( $this, 'get_public_item_schema' ),
		)
	);

	register_rest_route(
		$this->namespace,
		'/' . $this->rest_base . '/(?P<id>[a-zA-Z0-9_-]+)/encode',
		array(
			'args' => array(
				'id'        => array(
					'description' => __( 'The widget type id.' ),
					'type'        => 'string',
					'required'    => true,
				),
				'instance'  => array(
					'description' => __( 'Current instance settings of the widget.' ),
					'type'        => 'object',
				),
				'form_data' => array(
					'description'       => __( 'Serialized widget form data to encode into instance settings.' ),
					'type'              => 'string',
					'sanitize_callback' => static function ( $form_data ) {
						$array = array();
						wp_parse_str( $form_data, $array );
						return $array;
					},
				),
			),
			array(
				'methods'             => WP_REST_Server::CREATABLE,
				'permission_callback' => array( $this, 'get_item_permissions_check' ),
				'callback'            => array( $this, 'encode_form_data' ),
			),
		)
	);

	register_rest_route(
		$this->namespace,
		'/' . $this->rest_base . '/(?P<id>[a-zA-Z0-9_-]+)/render',
		array(
			array(
				'methods'             => WP_REST_Server::CREATABLE,
				'permission_callback' => array( $this, 'get_item_permissions_check' ),
				'callback'            => array( $this, 'render' ),
				'args'                => array(
					'id'       => array(
						'description' => __( 'The widget type id.' ),
						'type'        => 'string',
						'required'    => true,
					),
					'instance' => array(
						'description' => __( 'Current instance settings of the widget.' ),
						'type'        => 'object',
					),
				),
			),
		)
	);
}