diff --git a/wp-includes/functions.php b/wp-includes/functions.php index 82b19ec8f1..676eacbe38 100644 --- a/wp-includes/functions.php +++ b/wp-includes/functions.php @@ -2981,8 +2981,9 @@ function wp_get_default_extension_for_mime_type( $mime_type ) { * You can optionally define the mime array, if needed. * * @since 2.0.4 + * @since 6.0.0 URLs are now supported. * - * @param string $filename File name or path. + * @param string $filename File name, path, or URL. * @param string[] $mimes Optional. Array of allowed mime types keyed by their file extension regex. * @return array { * Values for the extension and mime type. @@ -2998,6 +2999,15 @@ function wp_check_filetype( $filename, $mimes = null ) { $type = false; $ext = false; + // Strip query args and fragment from filename to reveal extension. + $query_pos = strpos( $filename, '?' ); + + if ( false !== $query_pos ) { + $filename = substr_replace( $filename, '', $query_pos ); + } + + $filename = strip_fragment_from_url( $filename ); + foreach ( $mimes as $ext_preg => $mime_match ) { $ext_preg = '!\.(' . $ext_preg . ')$!i'; if ( preg_match( $ext_preg, $filename, $ext_matches ) ) { diff --git a/wp-includes/version.php b/wp-includes/version.php index 21c7d411db..bf450968e3 100644 --- a/wp-includes/version.php +++ b/wp-includes/version.php @@ -16,7 +16,7 @@ * * @global string $wp_version */ -$wp_version = '6.0-alpha-52828'; +$wp_version = '6.0-alpha-52829'; /** * Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.