diff -r c7c34916027a -r 177826044cd9 wp/wp-includes/widgets/class-wp-widget-media-image.php --- a/wp/wp-includes/widgets/class-wp-widget-media-image.php Mon Oct 14 18:06:33 2019 +0200 +++ b/wp/wp-includes/widgets/class-wp-widget-media-image.php Mon Oct 14 18:28:13 2019 +0200 @@ -19,34 +19,41 @@ /** * Constructor. * - * @since 4.8.0 + * @since 4.8.0 */ public function __construct() { - parent::__construct( 'media_image', __( 'Image' ), array( - 'description' => __( 'Displays an image.' ), - 'mime_type' => 'image', - ) ); + parent::__construct( + 'media_image', + __( 'Image' ), + array( + 'description' => __( 'Displays an image.' ), + 'mime_type' => 'image', + ) + ); - $this->l10n = array_merge( $this->l10n, array( - 'no_media_selected' => __( 'No image selected' ), - 'add_media' => _x( 'Add Image', 'label for button in the image widget' ), - 'replace_media' => _x( 'Replace Image', 'label for button in the image widget; should preferably not be longer than ~13 characters long' ), - 'edit_media' => _x( 'Edit Image', 'label for button in the image widget; should preferably not be longer than ~13 characters long' ), - 'missing_attachment' => sprintf( - /* translators: %s: URL to media library */ - __( 'We can’t find that image. Check your media library and make sure it wasn’t deleted.' ), - esc_url( admin_url( 'upload.php' ) ) - ), - /* translators: %d: widget count */ - 'media_library_state_multi' => _n_noop( 'Image Widget (%d)', 'Image Widget (%d)' ), - 'media_library_state_single' => __( 'Image Widget' ), - ) ); + $this->l10n = array_merge( + $this->l10n, + array( + 'no_media_selected' => __( 'No image selected' ), + 'add_media' => _x( 'Add Image', 'label for button in the image widget' ), + 'replace_media' => _x( 'Replace Image', 'label for button in the image widget; should preferably not be longer than ~13 characters long' ), + 'edit_media' => _x( 'Edit Image', 'label for button in the image widget; should preferably not be longer than ~13 characters long' ), + 'missing_attachment' => sprintf( + /* translators: %s: URL to media library */ + __( 'We can’t find that image. Check your media library and make sure it wasn’t deleted.' ), + esc_url( admin_url( 'upload.php' ) ) + ), + /* translators: %d: widget count */ + 'media_library_state_multi' => _n_noop( 'Image Widget (%d)', 'Image Widget (%d)' ), + 'media_library_state_single' => __( 'Image Widget' ), + ) + ); } /** * Get schema for properties of a widget instance (item). * - * @since 4.8.0 + * @since 4.8.0 * * @see WP_REST_Controller::get_item_schema() * @see WP_REST_Controller::get_additional_fields() @@ -55,93 +62,92 @@ */ public function get_instance_schema() { return array_merge( - parent::get_instance_schema(), array( - 'size' => array( - 'type' => 'string', - 'enum' => array_merge( get_intermediate_image_sizes(), array( 'full', 'custom' ) ), - 'default' => 'medium', + '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, + '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, + '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' ), + 'caption' => array( + 'type' => 'string', + 'default' => '', + 'sanitize_callback' => 'wp_kses_post', + 'description' => __( 'Caption' ), 'should_preview_update' => false, ), - 'alt' => array( - 'type' => 'string', - 'default' => '', + 'alt' => array( + 'type' => 'string', + 'default' => '', 'sanitize_callback' => 'sanitize_text_field', - 'description' => __( 'Alternative Text' ), + 'description' => __( 'Alternative Text' ), ), - 'link_type' => array( - 'type' => 'string', - 'enum' => array( 'none', 'file', 'post', 'custom' ), - 'default' => 'custom', - 'media_prop' => 'link', - 'description' => __( 'Link To' ), + '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' ), + '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' ), + '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', + 'link_classes' => array( + 'type' => 'string', + 'default' => '', + 'sanitize_callback' => array( $this, 'sanitize_token_list' ), + 'media_prop' => 'linkClassName', 'should_preview_update' => false, - 'description' => __( 'Link CSS Class' ), + 'description' => __( 'Link CSS Class' ), ), - 'link_rel' => array( - 'type' => 'string', - 'default' => '', - 'sanitize_callback' => array( $this, 'sanitize_token_list' ), - 'media_prop' => 'linkRel', - 'description' => __( 'Link Rel' ), + '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' ), + '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' ), + 'image_title' => array( + 'type' => 'string', + 'default' => '', + 'sanitize_callback' => 'sanitize_text_field', + 'media_prop' => 'title', + 'description' => __( 'Image Title Attribute' ), 'should_preview_update' => false, ), @@ -154,23 +160,27 @@ * - height (redundant when size is not custom) * - width (redundant when size is not custom) */ - ) + ), + parent::get_instance_schema() ); } /** * Render the media on the frontend. * - * @since 4.8.0 + * @since 4.8.0 * * @param array $instance Widget instance props. * @return void */ public function render_media( $instance ) { $instance = array_merge( wp_list_pluck( $this->get_instance_schema(), 'default' ), $instance ); - $instance = wp_parse_args( $instance, array( - 'size' => 'thumbnail', - ) ); + $instance = wp_parse_args( + $instance, + array( + 'size' => 'thumbnail', + ) + ); $attachment = null; if ( $this->is_attachment_with_mime_type( $instance['attachment_id'], $this->widget_options['mime_type'] ) ) { @@ -205,7 +215,7 @@ $image = wp_get_attachment_image( $attachment->ID, $size, false, $image_attributes ); $caption_size = _wp_get_image_size_from_meta( $instance['size'], wp_get_attachment_metadata( $attachment->ID ) ); - $width = empty( $caption_size[0] ) ? 0 : $caption_size[0]; + $width = empty( $caption_size[0] ) ? 0 : $caption_size[0]; } else { if ( empty( $instance['url'] ) ) { @@ -213,9 +223,9 @@ } $instance['size'] = 'custom'; - $caption = $instance['caption']; - $width = $instance['width']; - $classes = 'image ' . $instance['image_classes']; + $caption = $instance['caption']; + $width = $instance['width']; + $classes = 'image ' . $instance['image_classes']; if ( 0 === $instance['width'] ) { $instance['width'] = ''; } @@ -223,7 +233,8 @@ $instance['height'] = ''; } - $image = sprintf( '%3$s', + $image = sprintf( + '%3$s', esc_attr( $classes ), esc_url( $instance['url'] ), esc_attr( $instance['alt'] ), @@ -255,14 +266,17 @@ $link .= '>'; $link .= $image; $link .= ''; - $image = $link; + $image = wp_targeted_link_rel( $link ); } if ( $caption ) { - $image = img_caption_shortcode( array( - 'width' => $width, - 'caption' => $caption, - ), $image ); + $image = img_caption_shortcode( + array( + 'width' => $width, + 'caption' => $caption, + ), + $image + ); } echo $image; @@ -325,7 +339,6 @@ <# } #>