WordPress.org

Make WordPress Core

Ticket #17495: 17495-wp-blip-fix.diff

File 17495-wp-blip-fix.diff, 1.5 KB (added by blepoxp, 3 years ago)
  • wp-includes/class-oembed.php

     
    3232                $this->providers = apply_filters( 'oembed_providers', array( 
    3333                        '#http://(www\.)?youtube.com/watch.*#i'         => array( 'http://www.youtube.com/oembed',            true  ), 
    3434                        'http://youtu.be/*'                             => array( 'http://www.youtube.com/oembed',            false ), 
    35                         'http://blip.tv/file/*'                         => array( 'http://blip.tv/oembed/',                   false ), 
     35                        'http://blip.tv/*'                              => array( 'http://blip.tv/oembed/',                   false ), 
    3636                        '#http://(www\.)?vimeo\.com/.*#i'               => array( 'http://www.vimeo.com/api/oembed.{format}', true  ), 
    3737                        '#http://(www\.)?dailymotion\.com/.*#i'         => array( 'http://www.dailymotion.com/api/oembed',    true  ), 
    3838                        '#http://(www\.)?flickr\.com/.*#i'              => array( 'http://www.flickr.com/services/oembed/',   true  ), 
     
    198198         * @access private 
    199199         */ 
    200200        function _parse_json( $response_body ) { 
    201                 return ( ( $data = json_decode( trim( $response_body ) ) ) && is_object( $data ) ) ? $data : false; 
     201                $response_body = trim( $response_body ); 
     202                if ( ! $data = json_decode( $response_body ) ) { 
     203                        $response_body = preg_replace( '/"(\s+)"/', '",$1"', $response_body ); 
     204                        $data = json_decode( $response_body ); 
     205                } 
     206                return is_object( $data ) ? $data : false; 
    202207        } 
    203208 
    204209        /**