diff --git a/wp-includes/formatting.php b/wp-includes/formatting.php index 38b6bbf72b..d71ab2d6c1 100644 --- a/wp-includes/formatting.php +++ b/wp-includes/formatting.php @@ -3937,10 +3937,26 @@ function wp_trim_excerpt( $text = '', $post = null ) { $text = strip_shortcodes( $text ); $text = excerpt_remove_blocks( $text ); + /* + * Temporarily unhook wp_filter_content_tags() since any tags + * within the excerpt are stripped out. Modifying the tags here + * is wasteful and can lead to bugs in the image counting logic. + */ + $filter_removed = remove_filter( 'the_content', 'wp_filter_content_tags' ); + /** This filter is documented in wp-includes/post-template.php */ $text = apply_filters( 'the_content', $text ); $text = str_replace( ']]>', ']]>', $text ); + /** + * Only restore the filter callback if it was removed above. The logic + * to unhook and restore only applies on the default priority of 10, + * which is generally used for the filter callback in WordPress core. + */ + if ( $filter_removed ) { + add_filter( 'the_content', 'wp_filter_content_tags' ); + } + /* translators: Maximum number of words used in a post excerpt. */ $excerpt_length = (int) _x( '55', 'excerpt_length' ); diff --git a/wp-includes/version.php b/wp-includes/version.php index 5c7e5d56d8..485ddcbdba 100644 --- a/wp-includes/version.php +++ b/wp-includes/version.php @@ -16,7 +16,7 @@ * * @global string $wp_version */ -$wp_version = '6.3-alpha-55849'; +$wp_version = '6.3-alpha-55850'; /** * Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.