Ticket #6444: 6444-no-p-wrap-shortcodes-r7811-2.patch
| File 6444-no-p-wrap-shortcodes-r7811-2.patch, 2.2 KB (added by , 18 years ago) |
|---|
-
wp-includes/shortcodes.php
72 72 if (empty($shortcode_tags) || !is_array($shortcode_tags)) 73 73 return $content; 74 74 75 $pattern = get_shortcode_regex(); 76 return preg_replace_callback('/'.$pattern.'/s', 'do_shortcode_tag', $content); 77 } 78 79 function get_shortcode_regex() { 80 global $shortcode_tags; 75 81 $tagnames = array_keys($shortcode_tags); 76 82 $tagregexp = join( '|', array_map('preg_quote', $tagnames) ); 77 83 78 $pattern = '/\[('.$tagregexp.')\b(.*?)(?:(\/))?\](?:(.+?)\[\/\1\])?/s'; 79 80 return preg_replace_callback($pattern, 'do_shortcode_tag', $content); 84 return '\[('.$tagregexp.')\b(.*?)(?:(\/))?\](?:(.+?)\[\/\1\])?'; 81 85 } 82 86 83 87 function do_shortcode_tag($m) { -
wp-includes/formatting.php
74 74 $pee = preg_replace("/\n\n+/", "\n\n", $pee); // take care of duplicates 75 75 $pee = preg_replace('/\n?(.+?)(?:\n\s*\n|\z)/s', "<p>$1</p>\n", $pee); // make paragraphs, including one at the end 76 76 $pee = preg_replace('|<p>\s*?</p>|', '', $pee); // under certain strange conditions it could create a P of entirely whitespace 77 $pee = preg_replace('/<p>(\s*?' . get_shortcode_regex() . '\s*)<\/p>/s', '$1', $pee); // don't auto-p wrap post-formatting shortcodes 77 78 $pee = preg_replace('!<p>([^<]+)\s*?(</(?:div|address|form)[^>]*>)!', "<p>$1</p>$2", $pee); 78 79 $pee = preg_replace( '|<p>|', "$1<p>", $pee ); 79 80 $pee = preg_replace('!<p>\s*(</?' . $allblocks . '[^>]*>)\s*</p>!', "$1", $pee); // don't pee all over a tag … … 87 88 $pee = preg_replace('|(?<!<br />)\s*\n|', "<br />\n", $pee); // optionally make line breaks 88 89 $pee = str_replace('<WPPreserveNewline />', "\n", $pee); 89 90 } 91 $pee = preg_replace('/(' . get_shortcode_regex() . ')<br \/>/s', '$1', $pee); // don't br block shortcodes 90 92 $pee = preg_replace('!(</?' . $allblocks . '[^>]*>)\s*<br />!', "$1", $pee); 91 93 $pee = preg_replace('!<br />(\s*</?(?:p|li|div|dl|dd|dt|th|pre|td|ul|ol)[^>]*>)!', '$1', $pee); 92 94 if (strpos($pee, '<pre') !== false)