in WordPress, Webdesign

Bilddateien im SVG Format zu speichern ist im responsive Web eine beliebte Methode, Qualität auf allen Bildschirmgrößen zu garantieren. WordPress hat diesen MIME-Type (Internet Media Type) jedoch nie akzeptiert. Der Fix dafür funktioniert seit dem letzten Update im Januar nicht mehr. Dieser Artikel zeigt Dir wie Du dennoch SVG in WordPress einbinden kannst.

Warum der zusätzliche Aufwand?

Genau genommen handelt sich bei SVG Dateien um Dokumente. Das Scalable Vector Graphic Format ist ein XML basiertes Dokumentformat das ohne weiteres beispielsweise Links und Javascript akzeptiert, die von Browser und Betriebssystemen ausgeführt werden können. Auch dem geübten Laien leuchtet nun ein, dass es sich um ein Sicherheitsrisiko handelt.

SVG wird vom WordPress Core bisher nicht offiziell akzeptiert, da es sich hier um ein CMS handelt, das potentiell tausende Nutzer verwalten kann, die, wenn sie die Autorenrolle oder höher besitzen, Inhalte hochladen können. Sobald ein Autor eine SVG Dokument hochlädt, sollte dieses auf alle potentiellen Gefahren gescannt und bereinigt werden. Doch gerade dass ist die Crux an der sich WordPress Entwickler schon seit Jahren die Zähne ausbeißen. Die Debatte kann jeder unter dem WordPress Trac Ticket 24251 verfolgen. Wer in die Materie einsteigen will dem sei Mario Heiderich’s Vortrag zum Thema empfohlen (Die Slides dazu findest Du hier).

Für viele WordPress Administratoren die ein kleines Team betreuen spielen diese Sicherheitsbedenken keine Rolle, denn sie vertrauen ihren Redakteuren. Doch auch dieses Vertrauen muss darauf basieren, dass der Mitarbeiter die Risiken kennt und weiß wie er sie vermeidet. Dateien aus fremder Quelle sollte man grundsätzlich nicht in die Mediathek laden.

SVG hochladen per functions.php

Um in WordPress den MIME Type SVG zu registrieren ist folgender Filter notwendig. Füge ihn ans Ende der functions.php des Themes ein.

<?php
function kb_svg ($svg_mime){
	$svg_mime['svg'] = 'image/svg+xml';
	return $svg_mime;
}
add_filter( 'upload_mimes', 'kb_svg' );
?>

Dieser Filter ist lange bekannt und war bis zum WordPress Update 4.7.1 die Standard Lösung, um SVG Dateien hochladen zu können. Seit diesem Update ist zusätzlich folgender Code notwendig.

<?php
function  kb_ignore_upload_ext($checked,  $file,  $filename,  $mimes){

 if(!$checked['type']){
 $wp_filetype  =  wp_check_filetype( $filename, $mimes );
 $ext  =  $wp_filetype['ext'];
 $type  =  $wp_filetype['type'];
 $proper_filename  =  $filename;

 if($type  &&  0  ===  strpos($type,  'image/')  && $ext  !==  'svg'){
 $ext  =  $type  =  false;
 }

 $checked = compact('ext','type','proper_filename');
 }

 return $checked;
}

add_filter('wp_check_filetype_and_ext', 'kb_ignore_upload_ext', 10, 4);
?>

Wenn Du unsicher bist, wie man mit Code in WordPress umgeht, sieh Dir diesen Artikel zum Einfügen von Code an.

Alternativ zu dieser Methode können wir das Plugin Save SVG von Daryll Doyle empfehlen. Daryll arbeitet für das WordPress Entwicklerteam unter Anderem daran, SVG Dateien als MIME Type im WordPress Core aufzunehmen. Grundlegende Elemente eines dafür notwendigen Sicherheitsfilters hat er bereits in dieses Plugin integriert. Es kommt außerdem mit einer Thumbnail Unterstützung für die Mediathek.

Mit einer diesen Methoden kannst Du problemlos SVG in WordPress einbinden. Wir hoffen Dir hat dieser Artikel gefallen und freuen uns über jede Anregung und Kritik in den Kommentaren.

Empfohlene Beiträge

Einen Kommentar hinterlassen

Wonach suchst Du?

Share via
Bilder im SVG Dateien in WordPress hochladen
Filezilla richtig installieren und nutzen - medienvirusWordPress Fehler 404 beheben - medienvirus
Send this to a friend