Make WordPress Core

Changeset 44691


Ignore:
Timestamp:
01/22/2019 09:54:26 PM (6 years ago)
Author:
peterwilsoncc
Message:

Formatting: Prevent wp_targeted_link_rel() adding an empty attribute.

Bypass adding a rel attribute when the wp_targeted_link_rel filter returns an empty string or other falsy result.

Props mcmwebsol, spartank, meatman89fs.
Fixes #45352.

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-includes/formatting.php

    r44644 r44691  
    30663066    $rel = apply_filters( 'wp_targeted_link_rel', 'noopener noreferrer', $link_html );
    30673067
     3068    // Avoid additional regex if the filter removes rel values.
     3069    if ( ! $rel ) {
     3070        return "<a $link_html>";
     3071    }
     3072
    30683073    // Value with delimiters, spaces around are optional.
    30693074    $attr_regex = '|rel\s*=\s*?(\\\\{0,1}["\'])(.*?)\\1|i';
  • trunk/tests/phpunit/tests/formatting/WPTargetedLinkRel.php

    r42770 r44691  
    7272        $this->assertEquals( $expected, wp_targeted_link_rel( $content ) );
    7373    }
     74
     75    /**
     76     * Ensure empty rel attributes are not added.
     77     *
     78     * @ticket 45352.
     79     */
     80    public function test_ignore_if_wp_targeted_link_rel_nulled() {
     81        add_filter( 'wp_targeted_link_rel', '__return_empty_string' );
     82        $content  = '<p>Links: <a href="/" target="_blank">Do not change me</a></p>';
     83        $expected = '<p>Links: <a href="/" target="_blank">Do not change me</a></p>';
     84        $this->assertEquals( $expected, wp_targeted_link_rel( $content ) );
     85    }
    7486}
Note: See TracChangeset for help on using the changeset viewer.