web-dev-qa-db-fra.com

Problème de filtre de type mime de Wordpress Media 4.0

J'ai ajouté de nouveaux types mime avec le filtre 'post_mime_types' par exemple. PDF, doc, mp3 etc ...

Filtrer par type MIME personnalisé sur la page upload.php en mode grille multimédia fonctionne comme prévu, mais pas en mode liste.

Le problème est que WordPress transmet les types mime via urlencode lorsqu’il construit le code HTML ( wp-admin/includes/class-wp-media-list-table.php: 73 ) et ainsi

post_mime_type:application/pdf 

devient

post_mime_type:application%2Fpdf

pour la valeur déroulante.

Lorsque le formulaire de filtre est soumis, le '/' encodé est ignoré et ne filtre pas correctement.

Remettre "% 2F" en "/" avec JS fonctionnerait, mais j'aimerais savoir si quelqu'un a une solution pour décoder la chaîne avant qu'elle ne soit traitée et la page rechargée.

2
chris

Voici une solution de contournement que vous pouvez mettre dans un plugin ou dans le fichier functions.php de votre thème. Jusqu'ici pas de problèmes.

/*
* Workaround Bug 30123
* Affects WP 4.0+, should be fixed in WP 4.1
* https://core.trac.wordpress.org/ticket/30123
*/
function bugfix30123__action__admin_init() {
    if ( isset( $_GET['attachment-filter'] ) && is_string( $_GET['attachment-filter'] ) ) {
        $_GET['attachment-filter'] = $_REQUEST['attachment-filter'] = str_replace( '%2F', '/', $_GET['attachment-filter'] );
    }
}
add_action( 'admin_init', 'bugfix30123__action__admin_init' );
1
kitchin