Formatting: Add an extra line break before block elements in `wpautop()`.
`wpautop()` considers double line breaks to be the separator between block level HTML elements. By adding two line breaks before a block element, this allows us to process the text before a block element correctly. Fixes #4857. git-svn-id: https://develop.svn.wordpress.org/trunk@38592 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
parent
7511fe88cc
commit
61a95da031
|
@ -469,7 +469,7 @@ function wpautop( $pee, $br = true ) {
|
|||
$allblocks = '(?:table|thead|tfoot|caption|col|colgroup|tbody|tr|td|th|div|dl|dd|dt|ul|ol|li|pre|form|map|area|blockquote|address|math|style|p|h[1-6]|hr|fieldset|legend|section|article|aside|hgroup|header|footer|nav|figure|figcaption|details|menu|summary)';
|
||||
|
||||
// Add a single line break above block-level opening tags.
|
||||
$pee = preg_replace('!(<' . $allblocks . '[\s/>])!', "\n$1", $pee);
|
||||
$pee = preg_replace('!(<' . $allblocks . '[\s/>])!', "\n\n$1", $pee);
|
||||
|
||||
// Add a double line break below block-level closing tags.
|
||||
$pee = preg_replace('!(</' . $allblocks . '>)!', "$1\n\n", $pee);
|
||||
|
|
|
@ -524,4 +524,14 @@ line 2<br/>
|
|||
$this->assertEquals( $expected, trim( wpautop( $content ) ) );
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @ticket 4857
|
||||
*/
|
||||
function test_that_text_before_blocks_is_peed() {
|
||||
$content = 'a<div>b</div>';
|
||||
$expected = "<p>a</p>\n<div>b</div>";
|
||||
|
||||
$this->assertEquals( $expected, trim( wpautop( $content ) ) );
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue