From eea0ee70bbe44eb749c0d6958b0be9d025c801ed Mon Sep 17 00:00:00 2001 From: Sainath Poojary Date: Wed, 12 Feb 2025 11:58:40 +0530 Subject: [PATCH] Embeds: Resolve conflicts and add oEmbed filter tests --- src/wp-includes/embed.php | 43 +++++++++++---------- tests/phpunit/tests/oembed/filterResult.php | 36 +++++++++++++++-- 2 files changed, 55 insertions(+), 24 deletions(-) diff --git a/src/wp-includes/embed.php b/src/wp-includes/embed.php index b5b30acead880..9e18b04c176da 100644 --- a/src/wp-includes/embed.php +++ b/src/wp-includes/embed.php @@ -931,6 +931,7 @@ function wp_filter_oembed_result( $result, $data, $url ) { 'a' => array( 'href' => true, ), + 'p' => array(), 'blockquote' => array(), 'iframe' => array( 'src' => true, @@ -947,36 +948,36 @@ function wp_filter_oembed_result( $result, $data, $url ) { $html = wp_kses( $result, $allowed_html ); preg_match( '|(
.*?
)?.*()|ms', $html, $content ); + // We require at least the iframe to exist. - if ( empty( $content[2] ) ) { - return false; - } - $html = $content[1] . $content[2]; + if ( ! empty( $content[2] ) ) { + $html = $content[1] . $content[2]; - preg_match( '/ src=([\'"])(.*?)\1/', $html, $results ); + preg_match( '/ src=([\'"])(.*?)\1/', $html, $results ); - if ( ! empty( $results ) ) { - $secret = wp_generate_password( 10, false ); + if ( ! empty( $results ) ) { + $secret = wp_generate_password( 10, false ); - $url = esc_url( "{$results[2]}#?secret=$secret" ); - $q = $results[1]; + $url = esc_url( "{$results[2]}#?secret=$secret" ); + $q = $results[1]; - $html = str_replace( $results[0], ' src=' . $q . $url . $q . ' data-secret=' . $q . $secret . $q, $html ); - $html = str_replace( '