Bist du auch schon einmal beim Versuch eine Datei in die WordPress Mediathek hochzuladen fast verzweifelt weil WordPress die Datei einfach nicht speichern will? Stattdessen kommt die Fehlermeldung:
„Aus Sicherheitsgründen ist dieser Dateityp nicht erlaubt.“
Das passiert regelmäßig immer dann, wenn du versuchst einen Dateityp hochzuladen der nicht offiziell von WordPress freigegeben wurde. Das ist an sich auch erst einmal sinnvoll, da es der Sicherheit dient und potentiell unsichere Daten ausschließt die deine Webseite gefährden bzw. wie bei .svg angreifbar machen können.
Manchmal möchte man aber doch auch Dateien hochladen die eigentlich gesperrt sind, z.B. .woff und .woff2 Schriftarten die deutlich kleiner sind als die herkömmlichen Schriftarten. Oder .flac für Audio bzw. .tif für Bilder, .csv für Dateien … Mit einem kleinen Trick gelingt das auch, ich zeige dir gleich wie es geht.
Vorher schauen wir uns aber erst einmal an welche Dateitypen WordPress denn generell nur zulässt:
- Bilder: .jpg, .jpeg, .png, .gif, .webp, .heic
- Video: .mp4, .m4v, .mov, .wmv, .avi, .mpg, .ogv, .3gp, .3g2
- Audio: .mp3, .m4a, .ogg, .wav
- Dokumente: .pdf, .doc, .docx, .ppt, .pptx, .pps, .ppsx, .odt, .xls, .xlsx, .psd, .key
Wie du siehst sind das zwar die Standarddateien die überwiegend genutzt werden, aber eben nicht alle, die auch ohne erhöhtes Sicherheitsrisiko möglich wären.
Wie so oft gibt es auch hier mehrere Möglichkeiten wie du das Problem lösen kannst.
PlugIn
Wie für so vieles gibt es auch für dieses Problem mehrere entsprechende PlugIns die du unter anderem im WordPress Verzeichnis finden kannst. Einige sehr populäre sind:
Wenn du mich kennst, dann weißt du sicher auch schon dass ich PlugIns nur dann für sinnvoll halte wenn man sie wirklich braucht und seine Ziele nicht auf anderen, einfachen Wegen erreichen kann. Das aber geht in diesem Fall sehr gut wie du gleich sehen wirst.
kurzfristige Dateifreigabe
Für diese und die folgende Möglichkeit der Dateifreigabe ist es sehr sinnvoll wenn du ein Child-Theme nutzt. Wenn du das nicht machst und dir unterläuft ein Fehler kann es sein, dass deine gesamte Webseite nicht mehr richtig funktioniert.
Um nur mal kurz ein paar Dateien hochladen zu können genügt schon die kurzfristige Dateifreigabe. Dazu musst du lediglich eine kleine Zeile Code in deiner functions.php hinzufügen und schon kannst du jede beliebige Datei in der Mediathek speichern.
Die Datei functions.php findest du entweder in deinem Dahboard unter Design – Theme-Datei-Editor, oder per ftp im Ordner: wp-content – themes innerhalb des Ordners deines Child-Themes.
define( 'ALLOW_UNFILTERED_UPLOADS', true );
In einigen Anleitungen liest man, dass dieser kurze Code eigentlich in die Konfigurationsdatei von WordPress (wp-config.php) gehört. Das ist zwar einerseits richtig.
ABER:
Erstens funktioniert der Code sowohl in der functions.php als auch in der wp-config.php und zweitens, viel wichtiger hast du die functions.php schon in deinem Child-Theme und kannst Fehler viel schneller und leichter rückgängig machen. Die wp-config.php zu editieren solltest du daher nur machen wenn du weißt was du tust und entsprechend umsichtig dabei bist.
SEHR WICHTIG:
Lösch bitte den eben erstellten Code sofort nachdem dein Upload erfolgreich war. Du solltest ihn auf gar keinen Fall ständig stehen lassen da er jedem der sich Zugang zu deiner Seite verschaffen kann das Recht einräumt jegliche Datei hochzuladen und auszuführen.
Alle Dateien die du damit hochgeladen hast bleiben selbstverständlich auch nach der Entfernung des Codes erhalten.
langfristige Dateifreigabe
Möchtest du dagegen in der Lage sein immer wieder Dateien eines betimmten Formats hochladen zu können ohne jedesmal dran denken zu müssen den Code von gerade eben zu erstellen und auch wieder zu löschen, dann gibt es eine elegantere Lösung.
Dazu gehst du wieder in die function.php deines Child-Themes und erstellst eine Funktion die die entsprechenden Dateiendungen dauerhaft freischaltet.
Ich zeige dir das jetzt mal exemplarisch anhand von verschiedenen Schriftarten:
// Schriftarten hinzufügen
add_filter('upload_mimes', 'custom_mime_types', 999999);
function custom_mime_types($mimes) {
$mimes['otf'] = 'application/x-font-opentype';
$mimes['woff'] = 'application/font-woff';
$mimes['woff2'] = 'application/font-woff2';
return $mimes;
}
Je nachdem welchen Dateityp du dauerhaft hochladen möchtest benötigst du natürlich auch andere MIME-Typen. Ändere dazu einfach den Code in die entprechenden Formate ab. Eine Übersicht über die verschiedenen MIME-Typen die du für deine gewünschte Dateifreigabe benötigst findest du hier.
Diesen Code musst du dann auch nicht mehr löschen, das heißt du kannst den gewählten Dateityp ab sofort immer wieder laden.
0 Kommentare