Make WordPress Core

Changeset 41549


Ignore:
Timestamp:
09/20/2017 07:44:13 PM (9 years ago)
Author:
westonruter
Message:

Widgets: Omit attributes from an Image widget's link when they are empty.

Props subrataemfluence, Nenad Obradovic, westonruter.
See #39993.
Fixes #41919.

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-includes/widgets/class-wp-widget-media-image.php

    r41252 r41549  
    241241
    242242                if ( $url ) {
    243                         $image = sprintf(
    244                                 '<a href="%1$s" class="%2$s" rel="%3$s" target="%4$s">%5$s</a>',
    245                                 esc_url( $url ),
    246                                 esc_attr( $instance['link_classes'] ),
    247                                 esc_attr( $instance['link_rel'] ),
    248                                 ! empty( $instance['link_target_blank'] ) ? '_blank' : '',
    249                                 $image
    250                         );
     243                        $link = sprintf( '<a href="%s"', esc_url( $url ) );
     244                        if ( ! empty( $instance['link_classes'] ) ) {
     245                                $link .= sprintf( ' class="%s"', esc_attr( $instance['link_classes'] ) );
     246                        }
     247                        if ( ! empty( $instance['link_rel'] ) ) {
     248                                $link .= sprintf( ' rel="%s"', esc_attr( $instance['link_rel'] ) );
     249                        }
     250                        if ( ! empty( $instance['link_target_blank'] ) ) {
     251                                $link .= ' target="_blank"';
     252                        }
     253                        $link .= '>';
     254                        $link .= $image;
     255                        $link .= '</a>';
     256                        $image = $link;
    251257                }
    252258
  • trunk/tests/phpunit/tests/widgets/media-image-widget.php

    r40674 r41549  
    394394                $link = '<a href="' . wp_get_attachment_url( $attachment_id ) . '"';
    395395                $this->assertContains( $link, $output );
    396                 $link .= ' class=""';
    397                 $this->assertContains( $link, $output );
    398                 $link .= ' rel=""';
    399                 $this->assertContains( $link, $output );
    400                 $link .= ' target=""';
    401                 $this->assertContains( $link, $output );
     396                $this->assertTrue( (bool) preg_match( '#<a href.*?>#', $output, $matches ) );
     397                $this->assertNotContains( ' class="', $matches[0] );
     398                $this->assertNotContains( ' rel="', $matches[0] );
     399                $this->assertNotContains( ' target="', $matches[0] );
    402400
    403401                ob_start();
     
    414412                $this->assertContains( 'class="custom-link-class"', $output );
    415413                $this->assertContains( 'rel="attachment"', $output );
    416                 $this->assertContains( 'target=""', $output );
     414                $this->assertNotContains( 'target=""', $output );
    417415
    418416                ob_start();
Note: See TracChangeset for help on using the changeset viewer.