WordPress.org

Make WordPress Core

Ticket #30377: 30377.3.diff

File 30377.3.diff, 4.0 KB (added by layotte, 4 years ago)
  • wp-includes/functions.php

    diff --git wp-includes/functions.php wp-includes/functions.php
    index b09ed84..4f7f19d 100644
    function wp_check_filetype( $filename, $mimes = null ) { 
    20742074}
    20752075
    20762076/**
     2077 * Retrieve the file type from the URL.
     2078 *
     2079 * You can optionally define the mime array, if needed.
     2080 *
     2081 * @since 4.3
     2082 *
     2083 * @param string $url URL of file.
     2084 * @param array  $mimes    Optional. Key is the file extension with value as the mime type.
     2085 * @return array Values with extension first and mime type.
     2086 */
     2087function wp_check_url_filetype( $url, $mimes = null ) {
     2088        $filename = parse_url( $url, PHP_URL_PATH );
     2089        return wp_check_filetype( $filename, $mimes );
     2090}
     2091
     2092/**
    20772093 * Attempt to determine the real file type of a file.
    20782094 *
    20792095 * If unable to, the file name extension will be used to determine type.
  • wp-includes/media.php

    diff --git wp-includes/media.php wp-includes/media.php
    index 4007fec..fc16baa 100644
    function wp_playlist_shortcode( $attr ) { 
    13441344        $tracks = array();
    13451345        foreach ( $attachments as $attachment ) {
    13461346                $url = wp_get_attachment_url( $attachment->ID );
    1347                 $ftype = wp_check_filetype( $url, wp_get_mime_types() );
     1347                $ftype = wp_check_url_filetype( $url, wp_get_mime_types() );
    13481348                $track = array(
    13491349                        'src' => $url,
    13501350                        'type' => $ftype['type'],
    function wp_audio_shortcode( $attr, $content = '' ) { 
    15841584
    15851585        $primary = false;
    15861586        if ( ! empty( $atts['src'] ) ) {
    1587                 $type = wp_check_filetype( $atts['src'], wp_get_mime_types() );
     1587                $type = wp_check_url_filetype( $atts['src'], wp_get_mime_types() );
    15881588                if ( ! in_array( strtolower( $type['ext'] ), $default_types ) ) {
    15891589                        return sprintf( '<a class="wp-embedded-audio" href="%s">%s</a>', esc_url( $atts['src'] ), esc_html( $atts['src'] ) );
    15901590                }
    function wp_audio_shortcode( $attr, $content = '' ) { 
    15931593        } else {
    15941594                foreach ( $default_types as $ext ) {
    15951595                        if ( ! empty( $atts[ $ext ] ) ) {
    1596                                 $type = wp_check_filetype( $atts[ $ext ], wp_get_mime_types() );
     1596                                $type = wp_check_url_filetype( $atts[ $ext ], wp_get_mime_types() );
    15971597                                if ( strtolower( $type['ext'] ) === $ext ) {
    15981598                                        $primary = true;
    15991599                                }
    function wp_audio_shortcode( $attr, $content = '' ) { 
    16701670                        if ( empty( $fileurl ) ) {
    16711671                                $fileurl = $atts[ $fallback ];
    16721672                        }
    1673                         $type = wp_check_filetype( $atts[ $fallback ], wp_get_mime_types() );
     1673                        $type = wp_check_url_filetype( $atts[ $fallback ], wp_get_mime_types() );
    16741674                        $url = add_query_arg( '_', $instance, $atts[ $fallback ] );
    16751675                        $html .= sprintf( $source, $type['type'], esc_url( $url ) );
    16761676                }
    function wp_video_shortcode( $attr, $content = '' ) { 
    18141814                $is_vimeo = ( preg_match( $vimeo_pattern, $atts['src'] ) );
    18151815                $is_youtube = (  preg_match( $yt_pattern, $atts['src'] ) );
    18161816                if ( ! $is_youtube && ! $is_vimeo ) {
    1817                         $type = wp_check_filetype( $atts['src'], wp_get_mime_types() );
     1817                        $type = wp_check_url_filetype( $atts['src'], wp_get_mime_types() );
    18181818                        if ( ! in_array( strtolower( $type['ext'] ), $default_types ) ) {
    18191819                                return sprintf( '<a class="wp-embedded-video" href="%s">%s</a>', esc_url( $atts['src'] ), esc_html( $atts['src'] ) );
    18201820                        }
    function wp_video_shortcode( $attr, $content = '' ) { 
    18291829        } else {
    18301830                foreach ( $default_types as $ext ) {
    18311831                        if ( ! empty( $atts[ $ext ] ) ) {
    1832                                 $type = wp_check_filetype( $atts[ $ext ], wp_get_mime_types() );
     1832                                $type = wp_check_url_filetype( $atts[ $ext ], wp_get_mime_types() );
    18331833                                if ( strtolower( $type['ext'] ) === $ext ) {
    18341834                                        $primary = true;
    18351835                                }
    function wp_video_shortcode( $attr, $content = '' ) { 
    19131913                        } elseif ( 'src' === $fallback && $is_vimeo ) {
    19141914                                $type = array( 'type' => 'video/vimeo' );
    19151915                        } else {
    1916                                 $type = wp_check_filetype( $atts[ $fallback ], wp_get_mime_types() );
     1916                                $type = wp_check_url_filetype( $atts[ $fallback ], wp_get_mime_types() );
    19171917                        }
    19181918                        $url = add_query_arg( '_', $instance, $atts[ $fallback ] );
    19191919                        $html .= sprintf( $source, $type['type'], esc_url( $url ) );