Autoriser l'upload de fichiers non-autorisés sur Wordpress

Désolé, ce type de fichier n’est pas autorisé pour des raisons de sécurité. J'ai repoussé à de nombreuses reprises sa résolution pensant que c'était une opération complexe. Finalement, en moins de 5 min, c'était résolu et c'est ce que je vais vous montrer dès maintenant !

Je traiterai l’upload de fichiers zip en particulier.

Résolution manuelle :

Accéder au fichier function.php :

Le fichier “function.php” est censé se situer dans le dossier du thème de votre site web. Accedez-y via SFTP, SSH ou de la façon de votre choix.

Modifier function.php

Pour comprendre la fonction ci-dessous, il faut savoir ce qu’est un type Mime :

Un type de média, ou type MIME est un identifiant de format de données composé de 2 parties, appelées type, et sous-types.

Dans notre cas, notre type MIME est “application/zip”, mais il en existe pleins d’autres :

  • application/pdf pour le format pdf
  • application/msword pour le format .doc de Microsoft Word
  • image/gif pour les images GIF
  • text/css pour le CSS

Pour en voir plus : Type Mimes - Wikipédia

Pour ajouter les fichiers “zip”, ajoutez-y ces lignes entre les balises php.

function zip_up($mimes=array()) { 
   $mimes['zip'] = 'application/zip';
   return $mimes;
}
add_filter('upload_mimes', 'zip_up');

N’oubliez pas d’enregistrer !

Nb : Vous pouvez bien sûr ajouter autant d’extensions que vous souhaitez…

Optionnel : désactiver totalement le filtrage

Pour autoriser l’upload de n’importe quel fichier, il suffit d’ajouter la ligne suivante au fichier wp-config.php à la racine de votre site web.

define('ALLOW_UNFILTERED_UPLOADS', true);

Alternative : Utiliser une extension

J’utilise personnellement l’extension : WP add Mimes Types par Kimiya Kitani

Une fois installée, vous la trouverez sous “Réglage” puis “Mime types settings”.

Vous y trouverez également une liste d’extension autorisé sous “List of allowed mime types and file extensions by WordPress”.

Add Values - WP add Mimes Types

Ajoutez-y cette ligne et enregistrez.