From ebb578b2d9a6ba462bc5b173cb373d676bed21cc Mon Sep 17 00:00:00 2001 From: Weston Ruter Date: Wed, 20 Sep 2017 19:44:13 +0000 Subject: [PATCH] Widgets: Omit attributes from an Image widget's link when they are empty. Props subrataemfluence, Nenad Obradovic, westonruter. See #39993. Fixes #41919. git-svn-id: https://develop.svn.wordpress.org/trunk@41549 602fd350-edb4-49c9-b593-d223f7449a82 --- .../widgets/class-wp-widget-media-image.php | 22 ++++++++++++------- .../tests/widgets/media-image-widget.php | 12 +++++----- 2 files changed, 19 insertions(+), 15 deletions(-) diff --git a/src/wp-includes/widgets/class-wp-widget-media-image.php b/src/wp-includes/widgets/class-wp-widget-media-image.php index e0dafd3733..8fbb952f9a 100644 --- a/src/wp-includes/widgets/class-wp-widget-media-image.php +++ b/src/wp-includes/widgets/class-wp-widget-media-image.php @@ -240,14 +240,20 @@ class WP_Widget_Media_Image extends WP_Widget_Media { } if ( $url ) { - $image = sprintf( - '%5$s', - esc_url( $url ), - esc_attr( $instance['link_classes'] ), - esc_attr( $instance['link_rel'] ), - ! empty( $instance['link_target_blank'] ) ? '_blank' : '', - $image - ); + $link = sprintf( 'assertContains( $link, $output ); - $link .= ' class=""'; - $this->assertContains( $link, $output ); - $link .= ' rel=""'; - $this->assertContains( $link, $output ); - $link .= ' target=""'; - $this->assertContains( $link, $output ); + $this->assertTrue( (bool) preg_match( '##', $output, $matches ) ); + $this->assertNotContains( ' class="', $matches[0] ); + $this->assertNotContains( ' rel="', $matches[0] ); + $this->assertNotContains( ' target="', $matches[0] ); ob_start(); $widget->render_media( array( @@ -413,7 +411,7 @@ class Test_WP_Widget_Media_Image extends WP_UnitTestCase { $this->assertContains( 'assertContains( 'class="custom-link-class"', $output ); $this->assertContains( 'rel="attachment"', $output ); - $this->assertContains( 'target=""', $output ); + $this->assertNotContains( 'target=""', $output ); ob_start(); $widget->render_media( array(