Make WordPress Core

Changeset 44691


Ignore:
Timestamp:
01/22/2019 09:54:26 PM (8 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.