WP_REST_Widgets_Controller::get_item_schema(): array

In this article

Retrieves the widget’s schema, conforming to JSON Schema.

Return

array Item schema data.

Source

public function get_item_schema() {
	if ( $this->schema ) {
		return $this->add_additional_fields_schema( $this->schema );
	}

	$this->schema = array(
		'$schema'    => 'http://json-schema.org/draft-04/schema#',
		'title'      => 'widget',
		'type'       => 'object',
		'properties' => array(
			'id'            => array(
				'description' => __( 'Unique identifier for the widget.' ),
				'type'        => 'string',
				'context'     => array( 'view', 'edit', 'embed' ),
			),
			'id_base'       => array(
				'description' => __( 'The type of the widget. Corresponds to ID in widget-types endpoint.' ),
				'type'        => 'string',
				'context'     => array( 'view', 'edit', 'embed' ),
			),
			'sidebar'       => array(
				'description' => __( 'The sidebar the widget belongs to.' ),
				'type'        => 'string',
				'default'     => 'wp_inactive_widgets',
				'required'    => true,
				'context'     => array( 'view', 'edit', 'embed' ),
			),
			'rendered'      => array(
				'description' => __( 'HTML representation of the widget.' ),
				'type'        => 'string',
				'context'     => array( 'view', 'edit', 'embed' ),
				'readonly'    => true,
			),
			'rendered_form' => array(
				'description' => __( 'HTML representation of the widget admin form.' ),
				'type'        => 'string',
				'context'     => array( 'edit' ),
				'readonly'    => true,
			),
			'instance'      => array(
				'description' => __( 'Instance settings of the widget, if supported.' ),
				'type'        => 'object',
				'context'     => array( 'edit' ),
				'default'     => null,
				'properties'  => array(
					'encoded' => array(
						'description' => __( 'Base64 encoded representation of the instance settings.' ),
						'type'        => 'string',
						'context'     => array( 'edit' ),
					),
					'hash'    => array(
						'description' => __( 'Cryptographic hash of the instance settings.' ),
						'type'        => 'string',
						'context'     => array( 'edit' ),
					),
					'raw'     => array(
						'description' => __( 'Unencoded instance settings, if supported.' ),
						'type'        => 'object',
						'context'     => array( 'edit' ),
					),
				),
			),
			'form_data'     => array(
				'description' => __( 'URL-encoded form data from the widget admin form. Used to update a widget that does not support instance. Write only.' ),
				'type'        => 'string',
				'context'     => array(),
				'arg_options' => array(
					'sanitize_callback' => static function ( $form_data ) {
						$array = array();
						wp_parse_str( $form_data, $array );
						return $array;
					},
				),
			),
		),
	);

	return $this->add_additional_fields_schema( $this->schema );
}

Changelog

VersionDescription
5.8.0Introduced.

User Contributed Notes

You must log in before being able to contribute a note or feedback.