WordPress.org

Make WordPress Core

Ticket #20851: 20851.diff

File 20851.diff, 998 bytes (added by Otto42, 3 years ago)

Allow arbitrary params to be passed to oembed providers

  • wp-includes/class-oembed.php

     
    158158         */ 
    159159        function fetch( $provider, $url, $args = '' ) { 
    160160                $args = wp_parse_args( $args, wp_embed_defaults() ); 
    161  
    162                 $provider = add_query_arg( 'maxwidth', (int) $args['width'], $provider ); 
    163                 $provider = add_query_arg( 'maxheight', (int) $args['height'], $provider ); 
     161                 
     162                foreach ($args as $key=>$value) { 
     163                        switch ($key) { 
     164                        case 'width': 
     165                                $provider = add_query_arg( 'maxwidth', (int) $args['width'], $provider ); 
     166                                break; 
     167                        case 'height': 
     168                                $provider = add_query_arg( 'maxheight', (int) $args['height'], $provider ); 
     169                                break; 
     170                        default: 
     171                                $provider = add_query_arg( $key, $value, $provider ); 
     172                                break; 
     173                        } 
     174                } 
     175                 
    164176                $provider = add_query_arg( 'url', urlencode($url), $provider ); 
    165177 
    166178                foreach( array( 'json', 'xml' ) as $format ) {