Zum Inhalt springen
Fabian Deitelhoff

WordPress MIME Typen anpassen

Aus meinem alten Blog (2012–2017). Der Text steht so, wie ich ihn damals geschrieben habe.

In einer Standard-Installation von WordPress gibt es die Möglichkeit, verschiedene Dateitypen hochzuladen. Welche Dateitypen das sind, wird in WordPress durch einen Filter geregelt. Häufig reichen die vorgegebenen Dateitypen aber nicht aus. So war es vor einiger Zeit auf diesem Blog, da ich auch Dateien des LEGO Mindstorms Education EV3 hochladen möchte, die WordPress in der Standard-Konfiguration natürlich nicht kennt. Erfreulicherweise ist das Anpassen dieser sogenannten MIME Typen sehr einfach.

MIME Typen hinzufügen

Der Filter trägt den Namen upload_mimes und kann durch eine eigene Funktion erweitert werden. Diese Funktion wird anschließend immer dann aufgerufen, wenn eine Datei hochgeladen wird und WordPress ermitteln möchte, welche MIME Typen unterstützt werden. Das folgende Listing zeigt die Funktion, wie ich sie auch in diesem Blog im Einsatz habe.

add_filter('upload_mimes', 'add_custom_mime_types');

function add_custom_mime_types($mimes){
    return array_merge($mimes,array (
        'ev3b' => 'application/octet-stream',
        'ev3'  => 'application/octet-stream'
    ));
}

Hinzugefügt wird ein Filter mit der zugehörigen Funktion add_custom_mime_types. Diese Funktion bekommt mit dem Parameter $mimes die aktuellen schon vorhandenen MIME Typen reingereicht. Das ermöglicht es uns, die vorhandenen MIME Typen um eigene zu erweitern, ohne bei jedem Aufruf eigenhändig eine vollständige Liste aufbauen zu müssen, die auch die eigentlich schon bekannten MIME Typen erneut enthält. Durch das Listing werden also nur die Dateiendungen ev3b und ev3 hinzugefügt.

Diese Funktion muss in die Datei functions.php eures aktiven Designs (Themes). Ich habe mir angewöhnt, für solche Zwecke eine zusätzliche Datei zu erstellen, in denen diese Anpassungen gespeichert sind. In nennen die Datei Erweiterungen bzw. Englisch extensions.php.

MIME Typ herausfinden

Es gibt zahlreiche Tools, um den MIME Typ einer Datei herauszufinden. Das ist nützlich, wenn nicht ganz klar ist, welcher Typ zu welcher Datei gehört. Ich nutze häufig Online-Tools wie zum Beispiel http://mime.ritey.com/(öffnet in neuem Tab). Dort können Dateien hochgeladen werden und die Webseite zeigt den MIME Typ an. Natürlich sind solche Online-Tools nur dann sinnvoll, wenn die hochgeladenen Dateien nicht sicherheitskritisch oder sonstwie relevant sind, da natürlich nicht klar ist, was auf der Gegenseite nach der Prüfung mit der Datei passiert.

Auf diese Weise lassen sich schnell und unkompliziert die erlaubten MIME Typen der aktuellen WordPress-Installation erweitern. Unter Umständen kann es auch sein, dass euer eingesetzten Design (Theme) eine Funktion bereithält, mit der diese MIME Typen komfortabel über eine Oberfläche konfiguriert werden können. Dann entfällt der oben gezeigte manuelle Aufwand.