diff --git a/src/wp-includes/class-wp-embed.php b/src/wp-includes/class-wp-embed.php
index 6bb7217402..148c5f4bf7 100644
--- a/src/wp-includes/class-wp-embed.php
+++ b/src/wp-includes/class-wp-embed.php
@@ -59,7 +59,7 @@ class WP_Embed {
add_shortcode( 'embed', array( $this, 'shortcode' ) );
// Do the shortcode (only the [embed] one is registered)
- $content = do_shortcode( $content );
+ $content = do_shortcode( $content, true );
// Put the original shortcodes back
$shortcode_tags = $orig_shortcode_tags;
@@ -318,6 +318,10 @@ class WP_Embed {
* @return string Potentially modified $content.
*/
public function autoembed( $content ) {
+ // Strip newlines from all elements.
+ $content = wp_replace_in_html_tags( $content, array( "\n" => " " ) );
+
+ // Find URLs that are on their own line.
return preg_replace_callback( '|^(\s*)(https?://[^\s"]+)(\s*)$|im', array( $this, 'autoembed_callback' ), $content );
}
diff --git a/src/wp-includes/formatting.php b/src/wp-includes/formatting.php
index aae81dd50b..f47d9a29f4 100644
--- a/src/wp-includes/formatting.php
+++ b/src/wp-includes/formatting.php
@@ -504,6 +504,9 @@ function wpautop( $pee, $br = true ) {
// Standardize newline characters to "\n".
$pee = str_replace(array("\r\n", "\r"), "\n", $pee);
+ // Strip newlines from all elements.
+ $pee = wp_replace_in_html_tags( $pee, array( "\n" => " " ) );
+
// Collapse line breaks before and after