]> scripts.mit.edu Git - autoinstalls/wordpress.git/blobdiff - wp-includes/class-wp-embed.php
WordPress 4.2.4
[autoinstalls/wordpress.git] / wp-includes / class-wp-embed.php
index 9569f38df3b78aa08e2a2426cb492fc667bf9f50..e3426ab8b10ccc3016e6952fcd57a063cb96a135 100644 (file)
@@ -57,7 +57,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;
@@ -312,7 +312,14 @@ class WP_Embed {
         * @return string Potentially modified $content.
         */
        public function autoembed( $content ) {
-               return preg_replace_callback( '|^(\s*)(https?://[^\s"]+)(\s*)$|im', array( $this, 'autoembed_callback' ), $content );
+               // Replace line breaks from all HTML elements with placeholders.
+               $content = wp_replace_in_html_tags( $content, array( "\n" => '<!-- wp-line-break -->' ) );
+
+               // Find URLs that are on their own line.
+               $content = preg_replace_callback( '|^(\s*)(https?://[^\s"]+)(\s*)$|im', array( $this, 'autoembed_callback' ), $content );
+
+               // Put the line breaks back.
+               return str_replace( '<!-- wp-line-break -->', "\n", $content );
        }
 
        /**