Skip to content

Commit 1c68bb8

Browse files
committed
Don't wpautop()-wrap shortcodes that stand alone. fixes WordPress#6444 for trunk
git-svn-id: https://develop.svn.wordpress.org/trunk@7815 602fd350-edb4-49c9-b593-d223f7449a82
1 parent 24a68a4 commit 1c68bb8

2 files changed

Lines changed: 8 additions & 3 deletions

File tree

wp-includes/formatting.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,7 @@ function wpautop($pee, $br = 1) {
9292
if (strpos($pee, '<pre') !== false)
9393
$pee = preg_replace_callback('!(<pre.*?>)(.*?)</pre>!is', 'clean_pre', $pee );
9494
$pee = preg_replace( "|\n</p>$|", '</p>', $pee );
95+
$pee = preg_replace('/<p>\s*?(' . get_shortcode_regex() . ')\s*<\/p>/s', '$1', $pee); // don't auto-p wrap shortcodes that stand alone
9596

9697
return $pee;
9798
}

wp-includes/shortcodes.php

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -72,12 +72,16 @@ function do_shortcode($content) {
7272
if (empty($shortcode_tags) || !is_array($shortcode_tags))
7373
return $content;
7474

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;
7581
$tagnames = array_keys($shortcode_tags);
7682
$tagregexp = join( '|', array_map('preg_quote', $tagnames) );
7783

78-
$pattern = '/\[('.$tagregexp.')\b(.*?)(?:(\/))?\](?:(.+?)\[\/\1\])?/s';
79-
80-
return preg_replace_callback($pattern, 'do_shortcode_tag', $content);
84+
return '\[('.$tagregexp.')\b(.*?)(?:(\/))?\](?:(.+?)\[\/\1\])?';
8185
}
8286

8387
function do_shortcode_tag($m) {

0 commit comments

Comments
 (0)