WP_Widget_Media_Image::get_instance_schema()publicWP 4.8.0

Get schema for properties of a widget instance (item).

Method of the class: WP_Widget_Media_Image{}

No Hooks.

Return

Array. Schema for properties.

Usage

$WP_Widget_Media_Image = new WP_Widget_Media_Image();
$WP_Widget_Media_Image->get_instance_schema();

Notes

Changelog

Since 4.8.0 Introduced.

WP_Widget_Media_Image::get_instance_schema() code WP 6.5.2

public function get_instance_schema() {
	return array_merge(
		array(
			'size'              => array(
				'type'        => 'string',
				'enum'        => array_merge( get_intermediate_image_sizes(), array( 'full', 'custom' ) ),
				'default'     => 'medium',
				'description' => __( 'Size' ),
			),
			'width'             => array( // Via 'customWidth', only when size=custom; otherwise via 'width'.
				'type'        => 'integer',
				'minimum'     => 0,
				'default'     => 0,
				'description' => __( 'Width' ),
			),
			'height'            => array( // Via 'customHeight', only when size=custom; otherwise via 'height'.
				'type'        => 'integer',
				'minimum'     => 0,
				'default'     => 0,
				'description' => __( 'Height' ),
			),

			'caption'           => array(
				'type'                  => 'string',
				'default'               => '',
				'sanitize_callback'     => 'wp_kses_post',
				'description'           => __( 'Caption' ),
				'should_preview_update' => false,
			),
			'alt'               => array(
				'type'              => 'string',
				'default'           => '',
				'sanitize_callback' => 'sanitize_text_field',
				'description'       => __( 'Alternative Text' ),
			),
			'link_type'         => array(
				'type'                  => 'string',
				'enum'                  => array( 'none', 'file', 'post', 'custom' ),
				'default'               => 'custom',
				'media_prop'            => 'link',
				'description'           => __( 'Link To' ),
				'should_preview_update' => true,
			),
			'link_url'          => array(
				'type'                  => 'string',
				'default'               => '',
				'format'                => 'uri',
				'media_prop'            => 'linkUrl',
				'description'           => __( 'URL' ),
				'should_preview_update' => true,
			),
			'image_classes'     => array(
				'type'                  => 'string',
				'default'               => '',
				'sanitize_callback'     => array( $this, 'sanitize_token_list' ),
				'media_prop'            => 'extraClasses',
				'description'           => __( 'Image CSS Class' ),
				'should_preview_update' => false,
			),
			'link_classes'      => array(
				'type'                  => 'string',
				'default'               => '',
				'sanitize_callback'     => array( $this, 'sanitize_token_list' ),
				'media_prop'            => 'linkClassName',
				'should_preview_update' => false,
				'description'           => __( 'Link CSS Class' ),
			),
			'link_rel'          => array(
				'type'                  => 'string',
				'default'               => '',
				'sanitize_callback'     => array( $this, 'sanitize_token_list' ),
				'media_prop'            => 'linkRel',
				'description'           => __( 'Link Rel' ),
				'should_preview_update' => false,
			),
			'link_target_blank' => array(
				'type'                  => 'boolean',
				'default'               => false,
				'media_prop'            => 'linkTargetBlank',
				'description'           => __( 'Open link in a new tab' ),
				'should_preview_update' => false,
			),
			'image_title'       => array(
				'type'                  => 'string',
				'default'               => '',
				'sanitize_callback'     => 'sanitize_text_field',
				'media_prop'            => 'title',
				'description'           => __( 'Image Title Attribute' ),
				'should_preview_update' => false,
			),

			/*
			 * There are two additional properties exposed by the PostImage modal
			 * that don't seem to be relevant, as they may only be derived read-only
			 * values:
			 * - originalUrl
			 * - aspectRatio
			 * - height (redundant when size is not custom)
			 * - width (redundant when size is not custom)
			 */
		),
		parent::get_instance_schema()
	);
}