WordPress.org

Make WordPress Core

Ticket #16996: 16996-2.diff

File 16996-2.diff, 1.2 KB (added by jacobwg, 4 years ago)
  • wp-includes/class-oembed.php

     
    163163         * @return bool|object False on failure, otherwise the result in the form of an object. 
    164164         */ 
    165165        function fetch( $provider, $url, $args = '' ) { 
     166                // Add any URL query arguments to the oEmbed arguments - shortcode args have priority 
     167                $link_args = parse_url( $url, PHP_URL_QUERY ); 
     168                wp_parse_str( $link_args, $link_args ); 
     169                $args = wp_parse_args( $args, $link_args ); 
     170                 
     171                // Add any default oEmbed arguments - existing args have priority 
    166172                $args = wp_parse_args( $args, wp_embed_defaults() ); 
    167173 
    168174                $provider = add_query_arg( 'maxwidth', $args['width'], $provider ); 
    169175                $provider = add_query_arg( 'maxheight', $args['height'], $provider ); 
    170176                $provider = add_query_arg( 'url', urlencode($url), $provider ); 
     177                 
     178                // hackish way to remove strangely (non-oAuth) named args 
     179                unset($args['width']); 
     180                unset($args['height']); 
     181                unset($args['discover']); 
     182                 
     183                $provider = add_query_arg( $args, $provider ); 
    171184 
    172185                foreach( array( 'json', 'xml' ) as $format ) { 
    173186                        $result = $this->_fetch_with_format( $provider, $format );