From f79eb196df4de337197405795bc0460a54229341 Mon Sep 17 00:00:00 2001 From: Scott Taylor Date: Sun, 4 Jan 2015 02:32:22 +0000 Subject: [PATCH] Improve the handling of comma-separated mime-types in `wp_match_mime_types()`, particularly as pertains to the mime-type selector on the Media list table screen. Props mdgl. Fixes #30788. Built from https://develop.svn.wordpress.org/trunk@31042 git-svn-id: http://core.svn.wordpress.org/trunk@31023 1a063a9b-81f0-0310-95a4-ce76da25c4cd --- wp-admin/includes/class-wp-media-list-table.php | 2 +- wp-includes/post.php | 13 ++++++++----- wp-includes/version.php | 2 +- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/wp-admin/includes/class-wp-media-list-table.php b/wp-admin/includes/class-wp-media-list-table.php index 377e3c0201..219ebb3e12 100644 --- a/wp-admin/includes/class-wp-media-list-table.php +++ b/wp-admin/includes/class-wp-media-list-table.php @@ -75,7 +75,7 @@ class WP_Media_List_Table extends WP_List_Table { if ( !empty( $_GET['attachment-filter'] ) && strpos( $_GET['attachment-filter'], 'post_mime_type:' ) === 0 && wp_match_mime_types( $mime_type, str_replace( 'post_mime_type:', '', $_GET['attachment-filter'] ) ) ) $selected = ' selected="selected"'; if ( !empty( $num_posts[$mime_type] ) ) - $type_links[$mime_type] = ''; + $type_links[$mime_type] = ''; } $type_links['detached'] = ''; diff --git a/wp-includes/post.php b/wp-includes/post.php index 49ca9e243e..231741607e 100644 --- a/wp-includes/post.php +++ b/wp-includes/post.php @@ -2478,11 +2478,14 @@ function wp_match_mime_types( $wildcard_mime_types, $real_mime_types ) { $wild = '[-._a-z0-9]*'; foreach ( (array) $wildcard_mime_types as $type ) { - $regex = str_replace( '__wildcard__', $wild, preg_quote( str_replace( '*', '__wildcard__', $type ) ) ); - $patternses[1][$type] = "^$regex$"; - if ( false === strpos($type, '/') ) { - $patternses[2][$type] = "^$regex/"; - $patternses[3][$type] = $regex; + $mimes = array_map( 'trim', explode( ',', $type ) ); + foreach ( $mimes as $mime ) { + $regex = str_replace( '__wildcard__', $wild, preg_quote( str_replace( '*', '__wildcard__', $mime ) ) ); + $patternses[][$type] = "^$regex$"; + if ( false === strpos( $mime, '/' ) ) { + $patternses[][$type] = "^$regex/"; + $patternses[][$type] = $regex; + } } } asort( $patternses ); diff --git a/wp-includes/version.php b/wp-includes/version.php index c76b980c46..4863f38b50 100644 --- a/wp-includes/version.php +++ b/wp-includes/version.php @@ -4,7 +4,7 @@ * * @global string $wp_version */ -$wp_version = '4.2-alpha-31041'; +$wp_version = '4.2-alpha-31042'; /** * Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.