WordPress.org

Make WordPress Core

Ticket #7056: texturize-deep-code.diff

File texturize-deep-code.diff, 1.6 KB (added by nbachiyski, 6 years ago)
  • wp-includes/formatting.php

     
    3030        global $wp_cockneyreplace; 
    3131        $next = true; 
    3232        $has_pre_parent = false; 
     33        $has_code_parent = false; 
    3334        $output = ''; 
    3435        $curl = ''; 
    3536        $textarr = preg_split('/(<.*>|\[.*\])/Us', $text, -1, PREG_SPLIT_DELIM_CAPTURE); 
     
    5354        for ( $i = 0; $i < $stop; $i++ ) { 
    5455                $curl = $textarr[$i]; 
    5556 
    56                 if ( !empty($curl) && '<' != $curl{0} && '[' != $curl{0} && $next && !$has_pre_parent) { // If it's not a tag 
     57                if ( !empty($curl) && '<' != $curl{0} && '[' != $curl{0} && $next && !$has_pre_parent && !$has_code_parent) { // If it's not a tag 
    5758                        // static strings 
    5859                        $curl = str_replace($static_characters, $static_replacements, $curl); 
    5960                        // regular expressions 
    6061                        $curl = preg_replace($dynamic_characters, $dynamic_replacements, $curl); 
    61                 } elseif (strpos($curl, '<code') !== false || strpos($curl, '<kbd') !== false || strpos($curl, '<style') !== false || strpos($curl, '<script') !== false) { 
     62                } elseif (strpos($curl, '<kbd') !== false || strpos($curl, '<style') !== false || strpos($curl, '<script') !== false) { 
    6263                        $next = false; 
    6364                } elseif (strpos($curl, '<pre') !== false) { 
    6465                        $has_pre_parent = true; 
    6566                } elseif (strpos($curl, '</pre>') !== false) { 
    6667                        $has_pre_parent = false; 
     68                } elseif (strpos($curl, '<code') !== false) { 
     69                        $has_code_parent = true; 
     70                } elseif (strpos($curl, '</code>') !== false) { 
     71                        $has_code_parent = false; 
    6772                } else { 
    6873                        $next = true; 
    6974                }