WordPress.org

Make WordPress Core

Ticket #34575: shortcodes.php.diff

File shortcodes.php.diff, 967 bytes (added by distinct, 5 years ago)

possible solution to allow shortcodes in <!-- and <![CDATA[

  • wp-includes/shortcodes.php

    old new  
    335335        $pattern = get_shortcode_regex();
    336336        $textarr = wp_html_split( $content );
    337337
     338        $escape_code = apply_filters('safe_shortcodes_in_html_comments_cdata', true);
     339       
    338340        foreach ( $textarr as &$element ) {
    339341                if ( '' == $element || '<' !== $element[0] ) {
    340342                        continue;
     
    351353                        continue;
    352354                }
    353355
    354                 if ( $ignore_html || '<!--' === substr( $element, 0, 4 ) || '<![CDATA[' === substr( $element, 0, 9 ) ) {
     356                if ( $ignore_html ) {
    355357                        // Encode all [ and ] chars.
    356358                        $element = strtr( $element, $trans );
    357359                        continue;
    358360                }
     361               
     362                if ( '<!--' === substr( $element, 0, 4 ) || '<![CDATA[' === substr( $element, 0, 9 ) ) {
     363                        if ( $escape_code ) {
     364                                $element = strtr( $element, $trans );
     365                        }
     366                       
     367                        continue;
     368                }
    359369
    360370                $attributes = wp_kses_attr_parse( $element );
    361371                if ( false === $attributes ) {