Home » Wordpress » Wordpress Tutorials » WordPress: weitere Dateitypen zulassen (ohne Hack und Plugin)


WordPress: weitere Dateitypen zulassen (ohne Hack und Plugin)

WordPress lässt aus Sicherheitsgründen nur bestimmte Dateitypen zum Upload in der Mediathek zu. Welche das sind steht in der wp-includes/functions.php in der Whitelist-Funktion wp_check_filetype(). Der Dateityp “vcf” (Visitenkarte) ist z.B. nicht dabei. Ein Kunde von mir hätte genau das aber gerne gehabt.

MIME-Typen hinzufügen

Zum Glück hat die Whitelist-Funktion einen Filter upload_mimes und den machen wir uns zu Nutze. In der functions.php unseres Themes fürgen wir folgenden Code hinzu:

  1. function my_upload_mimes() {
  2.     $mime_types = array(
  3.         'vcf'     => 'text/x-vcard',
  4.     );
  5.     return $mime_types;
  6. }
  7. add_filter( 'upload_mimes', 'my_upload_mimes' );
function my_upload_mimes() {
	$mime_types = array( 
		'vcf'     => 'text/x-vcard',
	);
	return $mime_types;
}
add_filter( 'upload_mimes', 'my_upload_mimes' );

Dazu noch die Dateitypen, die ich ohnehin dabeihaben wollte. Diese hole ich mir aus der wp-includes/functions.php . Danach sieht die Funktion in meinem Falle so aus:

  1. function my_upload_mimes() {
  2.     $mime_types = array(
  3.         'vcf'     => 'text/x-vcard',
  4.         'jpg'     => 'image/jpeg',
  5.         'png'     => 'image/png',
  6.         'gif'     => 'image/gif',
  7.         'bmp'     => 'image/bmp',
  8.         'tif'     => 'image/tiff',
  9.     );
  10.     return $mime_types;
  11. }
  12. add_filter( 'upload_mimes', 'my_upload_mimes' );
function my_upload_mimes() {
	$mime_types = array( 
		'vcf'     => 'text/x-vcard',
		'jpg'     => 'image/jpeg',
		'png'	  => 'image/png',
		'gif'	  => 'image/gif',
		'bmp'	  => 'image/bmp',
		'tif'	  => 'image/tiff',
	);
	return $mime_types;
}
add_filter( 'upload_mimes', 'my_upload_mimes' );

Eine schöne Auswahl weiterer Mime-Typen findet Ihr hier.

Alle Dateitypen zulassen

Alle Dateitypen kann man übrigens mit der Konstante define (‘ALLOW_UNFILTERED_UPLOADS’, true); in der wp-config.php erlauben.