Correctly encode the url parameter that gets passed to WordPress' own oEmbed endpoint URL.

Fixes #34193
Props ocean90


git-svn-id: https://develop.svn.wordpress.org/trunk@34915 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
John Blackbourn 2015-10-07 21:42:36 +00:00
parent b877e3c692
commit 6705184dcc
2 changed files with 9 additions and 8 deletions

View File

@ -423,7 +423,7 @@ function get_oembed_endpoint_url( $permalink = '', $format = 'json' ) {
if ( '' !== $permalink ) {
$url = add_query_arg( array(
'url' => $permalink,
'url' => urlencode( $permalink ),
'format' => $format,
), $url );
}
@ -851,4 +851,4 @@ function print_oembed_embed_scripts() {
?>
</script>
<?php
}
}

View File

@ -182,11 +182,11 @@ class Test_oEmbed_Controller extends WP_UnitTestCase {
switch_to_blog( $child );
$post = $this->factory->post->create_and_get( array(
'post_title' => 'Hello Child Blog',
'post_title' => 'Hello Child Blog',
) );
$request = array(
'url' => get_permalink( $post->ID ),
'url' => get_permalink( $post->ID ),
'format' => 'json',
'maxwidth' => 600,
'callback' => '',
@ -207,11 +207,12 @@ class Test_oEmbed_Controller extends WP_UnitTestCase {
$this->assertEquals( home_url() . '/?oembed=true', get_oembed_endpoint_url( '', 'json' ) );
$this->assertEquals( home_url() . '/?oembed=true', get_oembed_endpoint_url( '', 'xml' ) );
$post_id = $this->factory->post->create();
$url = get_permalink( $post_id );
$post_id = $this->factory->post->create();
$url = get_permalink( $post_id );
$url_encoded = urlencode( $url );
$this->assertEquals( home_url() . '/?oembed=true&url=' . $url, get_oembed_endpoint_url( $url ) );
$this->assertEquals( home_url() . '/?oembed=true&url=' . $url . '&format=xml', get_oembed_endpoint_url( $url, 'xml' ) );
$this->assertEquals( home_url() . '/?oembed=true&url=' . $url_encoded, get_oembed_endpoint_url( $url ) );
$this->assertEquals( home_url() . '/?oembed=true&url=' . $url_encoded . '&format=xml', get_oembed_endpoint_url( $url, 'xml' ) );
}
function test_wp_oembed_ensure_format() {