WordPress 4.7.1 upload mime-type issue

In WordPress 4.7.1 gibt es einen Bug mit Dateiuploads/Dateitypen die NICHT dem Standard entsprechen, hier ist ein Quick-Fix, bzw. ein kleiner Hack wie man Fremd-Formate trotzdem wieder hochladen kann…

Auf mehrfachen speziellen Kundenwunsch, mussten wir oftmals zusätzliche Dateitypen zum Upload in WordPress freigeben, das machen wir normalerweise wie folgt:

add_filter('upload_mimes', 'my_upload_mimes');

function my_upload_mimes ( $existing_mimes=array() ) {
$existing_mimes['csv']='text/csv';
$existing_mimes['doc, docx']='text/doc';
$existing_mimes['xls, xlsx, xltx']='document/xls';
$existing_mimes['ppt, pptx']='document/ppt';
return $existing_mimes;
}

Die oben genannten Beispiel-Dateitypen variieren natürlich von Fall zu Fall, aber grundsätzlich erscheint nun jedesmal:

…bzw. bei einer englischsprachigen Installation dies hier:

Klicken Sie auf den unteren Button, um den Inhalt von wordpress.org zu laden.

Inhalt laden

Wie sich herausstellte ist dies ein Fehler in WordPress 4.7.1, was unter anderem als Bug auch hier beschrieben wurde, mit dem Lösungsansatz das „Disable Real MIME Check“ Plugin zu installieren.

Alternativ lässt sich aber auch einfach der (relevante) Quelltext des Plugins in die eigene functions.php einfügen, falls man wie ich kein großer Plugin-Freund ist:

function disable_real_mime_check( $data, $file, $filename, $mimes ) {
$wp_filetype = wp_check_filetype( $filename, $mimes );

$ext = $wp_filetype['ext'];
$type = $wp_filetype['type'];
$proper_filename = $data['proper_filename'];

return compact( 'ext', 'type', 'proper_filename' );
}
add_filter( 'wp_check_filetype_and_ext', 'disable_real_mime_check', 10, 4 );

Nur nicht vergessen den Hack wieder zu entfernen (oder auszukommentiren) wenn mit dem Update auf WordPress 4.7.2. wie alles funktioniert :-)