From affceae936f86a8614bc2d19bb2cbda443417dfc Mon Sep 17 00:00:00 2001 From: Gary Pendergast Date: Mon, 8 Apr 2019 06:54:54 +0000 Subject: [PATCH] Blocks: Allow for nested `the_content` calls within `do_blocks()`. When `do_blocks()` is run, it sets up some special handling of the `wpautop` filter, as we don't want `wpautop` to run on block content, but we do want it to be available for subsequent runs of `the_content`, which may be happening on non-block content. As we set this up before rendering dynamic blocks, however, a dynamic block choosing to run `the_content` will cause unintentially structural deficiences in this particular recursive block tower. Moving this handling to after dynamic blocks are rendered makes our tower lean a little less. Props aldavigdis, pento. Fixes #45495. Built from https://develop.svn.wordpress.org/trunk@45139 git-svn-id: http://core.svn.wordpress.org/trunk@44948 1a063a9b-81f0-0310-95a4-ce76da25c4cd --- wp-includes/blocks.php | 14 +++++++------- wp-includes/version.php | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/wp-includes/blocks.php b/wp-includes/blocks.php index 829d916bfd..8791f93642 100644 --- a/wp-includes/blocks.php +++ b/wp-includes/blocks.php @@ -262,13 +262,6 @@ function parse_blocks( $content ) { * @return string Updated post content. */ function do_blocks( $content ) { - // If there are blocks in this content, we shouldn't run wpautop() on it later. - $priority = has_filter( 'the_content', 'wpautop' ); - if ( false !== $priority && doing_filter( 'the_content' ) && has_blocks( $content ) ) { - remove_filter( 'the_content', 'wpautop', $priority ); - add_filter( 'the_content', '_restore_wpautop_hook', $priority + 1 ); - } - $blocks = parse_blocks( $content ); $output = ''; @@ -276,6 +269,13 @@ function do_blocks( $content ) { $output .= render_block( $block ); } + // If there are blocks in this content, we shouldn't run wpautop() on it later. + $priority = has_filter( 'the_content', 'wpautop' ); + if ( false !== $priority && doing_filter( 'the_content' ) && has_blocks( $content ) ) { + remove_filter( 'the_content', 'wpautop', $priority ); + add_filter( 'the_content', '_restore_wpautop_hook', $priority + 1 ); + } + return $output; } diff --git a/wp-includes/version.php b/wp-includes/version.php index 6f4adf7b80..f8a256b68f 100644 --- a/wp-includes/version.php +++ b/wp-includes/version.php @@ -13,7 +13,7 @@ * * @global string $wp_version */ -$wp_version = '5.2-beta1-45138'; +$wp_version = '5.2-beta1-45139'; /** * Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.