- Timestamp:
- 12/16/2018 02:22:43 AM (6 years ago)
- Location:
- trunk
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk
- Property svn:mergeinfo changed
/branches/5.0 merged: 43879,43881
- Property svn:mergeinfo changed
-
trunk/src/wp-includes/blocks.php
r44127 r44226 199 199 */ 200 200 function do_blocks( $content ) { 201 // If there are blocks in this content, we shouldn't run wpautop() on it later. 202 $priority = has_filter( 'the_content', 'wpautop' ); 203 if ( false !== $priority && doing_filter( 'the_content' ) && has_blocks( $content ) ) { 204 remove_filter( 'the_content', 'wpautop', $priority ); 205 add_filter( 'the_content', '_restore_wpautop_hook', $priority + 1 ); 206 } 207 201 208 $blocks = parse_blocks( $content ); 202 209 return _recurse_do_blocks( $blocks, $blocks ); 210 } 211 212 /** 213 * If do_blocks() needs to remove wp_autop() from the `the_content` filter, this re-adds it afterwards, 214 * for subsequent `the_content` usage. 215 * 216 * @access private 217 * 218 * @since 5.0.0 219 * 220 * @param string $content The post content running through this filter. 221 * @return string The unmodified content. 222 */ 223 function _restore_wpautop_hook( $content ) { 224 global $wp_filter; 225 $current_priority = $wp_filter['the_content']->current_priority(); 226 227 add_filter( 'the_content', 'wpautop', $current_priority - 1 ); 228 remove_filter( 'the_content', '_restore_wpautop_hook', $current_priority ); 229 230 return $content; 203 231 } 204 232 -
trunk/src/wp-includes/formatting.php
r44118 r44226 457 457 if ( trim( $pee ) === '' ) { 458 458 return ''; 459 }460 461 // We don't need to autop posts with blocks in them.462 if ( has_blocks( $pee ) ) {463 return $pee;464 459 } 465 460 -
trunk/tests/phpunit/tests/blocks/render.php
r44118 r44226 76 76 $block_filtered_content = preg_replace( "/\n{2,}/", "\n", $block_filtered_content ); 77 77 78 $this->assertEquals( $classic_filtered_content, $block_filtered_content);78 $this->assertEquals( trim( $classic_filtered_content ), trim( $block_filtered_content ) ); 79 79 } 80 80 81 81 function handle_shortcode( $atts, $content ) { 82 82 return $content; 83 } 84 85 /** 86 * @ticket 45290 87 */ 88 public function test_blocks_arent_autopeed() { 89 $expected_content = 'test'; 90 $test_content = "<!-- wp:fake/block -->\n$expected_content\n<!-- /wp:fake/block -->"; 91 92 $current_priority = has_action( 'the_content', 'wpautop' ); 93 94 $filtered_content = trim( apply_filters( 'the_content', $test_content ) ); 95 96 $this->assertEquals( $expected_content, $filtered_content ); 97 98 // Check that wpautop() is still defined in the same place. 99 $this->assertSame( $current_priority, has_action( 'the_content', 'wpautop' ) ); 100 // ... and that the restore function has removed itself. 101 $this->assertFalse( has_action( 'the_content', '_restore_wpautop_hook' ) ); 102 103 $test_content = 'test'; 104 $expected_content = "<p>$test_content</p>"; 105 106 $current_priority = has_action( 'the_content', 'wpautop' ); 107 108 $filtered_content = trim( apply_filters( 'the_content', $test_content ) ); 109 110 $this->assertEquals( $expected_content, $filtered_content ); 111 112 $this->assertSame( $current_priority, has_action( 'the_content', 'wpautop' ) ); 113 $this->assertFalse( has_action( 'the_content', '_restore_wpautop_hook' ) ); 83 114 } 84 115
Note: See TracChangeset
for help on using the changeset viewer.