WordPress.org

Make WordPress Core

Ticket #28564: miqro-28564.patch

File miqro-28564.patch, 2.5 KB (added by miqrogroove, 6 years ago)
  • src/wp-includes/formatting.php

     
    203203                . '|'
    204204                .       '\['            // Find start of shortcode.
    205205                .       '\[?'           // Shortcodes may begin with [[
    206                 .       '[^\[\]<>]+'    // Shortcodes do not contain other shortcodes or HTML elements.
     206                .       '[^\[\]]+'      // Shortcodes do not contain other shortcodes.  HTML recursion is permitted, but not texturized.
    207207                .       '\]'            // Find end of shortcode.
    208208                .       '\]?'           // Shortcodes may end with ]]
    209209                . ')/s';
     
    220220                                _wptexturize_pushpop_element( $curl, $no_texturize_tags_stack, $no_texturize_tags, '<', '>' );
    221221                        }
    222222
    223                 } elseif ( '[' === $first && 1 === preg_match( '/^\[[^\[\]<>]+\]$/', $curl ) ) {
     223                } elseif ( '[' === $first && 1 === preg_match( '/^\[[^\[\]]+\]$/', $curl ) ) {
    224224                        // This is a shortcode delimeter.
    225225
    226226                        _wptexturize_pushpop_element( $curl, $no_texturize_shortcodes_stack, $no_texturize_shortcodes, '[', ']' );
    227227
    228                 } elseif ( '[' === $first && 1 === preg_match( '/^\[\[?[^\[\]<>]+\]\]?$/', $curl ) ) {
     228                } elseif ( '[' === $first && 1 === preg_match( '/^\[\[?[^\[\]]+\]\]?$/', $curl ) ) {
    229229                        // This is an escaped shortcode delimeter.
    230230
    231231                        // Do not texturize.
  • tests/phpunit/tests/formatting/WPTexturize.php

     
    11861186                                '[code]...[/code]]...', // This test would not pass in 3.9 because the extra brace was always ignored by texturize.
    11871187                        ),
    11881188                        array(
     1189                                '[gal>ery ...]', // This is a potentially usable shortcode.
    11891190                                '[gal>ery ...]',
    1190                                 '[gal>ery &#8230;]',
    11911191                        ),
    11921192                        array(
    11931193                                '[gallery ...',
     
    11941194                                '[gallery &#8230;',
    11951195                        ),
    11961196                        array(
     1197                                '[gallery <br ... /> ...]', // This tag is still valid. Shortcode 'attributes' are not considered in the initial parsing of shortcodes, and HTML is allowed.
    11971198                                '[gallery <br ... /> ...]',
    1198                                 '[gallery <br ... /> &#8230;]',
    11991199                        ),
    12001200                        array(
    12011201                                '<br [gallery ...] ... />',
     
    12341234                                '[/gallery ...]]',
    12351235                        ),
    12361236                        array(
     1237                                '[[gallery <br ... /> ...]]', // This gets parsed as an escaped shortcode with embedded HTML.  Brains may explode.
    12371238                                '[[gallery <br ... /> ...]]',
    1238                                 '[[gallery <br ... /> &#8230;]]',
    12391239                        ),
    12401240                        array(
    12411241                                '<br [[gallery ...]] ... />',