In the `youtube_embed_url` embed handler, make `embed` a non-capturing group that alternately matches for `v` - YouTube supports both URL paths.

Add unit test cases.

Props dmchale for some patch work.
Fixes #32161.


git-svn-id: https://develop.svn.wordpress.org/trunk@32787 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
Scott Taylor 2015-06-16 00:34:06 +00:00
parent e88721433c
commit 7dd8a1364a
2 changed files with 13 additions and 3 deletions

View File

@ -2312,7 +2312,7 @@ function wp_maybe_load_embeds() {
return;
}
wp_embed_register_handler( 'youtube_embed_url', '#https?://(www.)?youtube\.com/embed/([^/]+)#i', 'wp_embed_handler_youtube' );
wp_embed_register_handler( 'youtube_embed_url', '#https?://(www.)?youtube\.com/(?:v|embed)/([^/]+)#i', 'wp_embed_handler_youtube' );
wp_embed_register_handler( 'googlevideo', '#http://video\.google\.([A-Za-z.]{2,5})/videoplay\?docid=([\d-]+)(.*?)#i', 'wp_embed_handler_googlevideo' );

View File

@ -120,8 +120,6 @@ CAP;
* @ticket 23149
*/
function test_youtube_com_secure_embed() {
global $wp_embed;
$out = wp_oembed_get( 'http://www.youtube.com/watch?v=oHg5SJYRHA0' );
$this->assertContains( 'https://www.youtube.com/embed/oHg5SJYRHA0?feature=oembed', $out );
@ -132,6 +130,18 @@ CAP;
$this->assertContains( 'https://www.youtube.com/embed/zHjMoNQN7s0?feature=oembed', $out );
}
function test_youtube_embed_url() {
global $wp_embed;
$out = $wp_embed->autoembed( 'https://www.youtube.com/embed/QcIy9NiNbmo' );
$this->assertContains( 'https://youtube.com/watch?v=QcIy9NiNbmo', $out );
}
function test_youtube_v_url() {
global $wp_embed;
$out = $wp_embed->autoembed( 'https://www.youtube.com/v/QcIy9NiNbmo' );
$this->assertContains( 'https://youtube.com/watch?v=QcIy9NiNbmo', $out );
}
/**
* @ticket 23776
*/