Manipuler les types de fichiers autorisés à l'upload dans la médiathèque de WordPress

mime type wordpress

Bon alors évidement, je me dois de commencer par vous prévenir que si WordPress n'autorise qu'on lui upload dans sa médiathèque qu'un certain nombre d'extensions de fichier... et bien c'est pas pour rien. Déposer un fichier dans la médiathèque implique de le déposer sur l'hébergement de votre site, et selon ce que contient le fichier, cela peut être dangereux. WordPress n'autorisant bien sûr par défaut que des types de fichier tranquillou.

Cela étant dit, et maintenant que vous agissez en toute conscience, si vous avez ce message :

Désolé, ce type de fichier n’est pas autorisé pour des raisons de sécurité.

Et bien c'est, comme le message l'indique, que vous tentez d'uploader un format de fichier interdit (c'est pas bien). Alors deux option s'offre à vous, soit vous renoncez, reconsidérez votre geste, vous débrouillez pour faire autrement, ou modifiez le format de votre fichier. Soit, vous vous obstinez, ne lâcherez rien, et votre fichier doit absolument pouvoir être envoyé dans la médiathèque de WordPress.

A noter que dans mon cas, le site est privé et accessible uniquement par des membres identifiés. Les raisons de sécurité ne font donc pas la poids devant le besoin de cette petite communauté de pouvoir partager tout type de document.

Bien sûr, il existe des plugins qui font cela très bien, mais pourquoi se priver d'une petite ligne de code quand l'occasion se présente ? Alors pour l'exemple, disons que nous avons à faire à une communauté de chercheurs en mathématique (si si), et que nous souhaitons autoriser les formats de fichiers csv et rtf. Et comme ils n'apprécient que les images avec fractales (ol le coup bas), nous souhaitons ne plus autoriser le format psd (Photoshop).

Pour ça rendez-vous dans le fichier functions.php de votre thème et insérez le bout de code que voici :


// Manipulation des formats de fichier pour l'upload

function como-format_upload ( $mime_types =array() ) {

$mime_types['cvs'] = 'text/csv'; // Autoriser format csv
$mime_types['rft'] = 'application/rtf'; // Autoriser format rft

unset( $mime_types['psd'] ); // Interdire Photoshop

return $mime_types;
}

add_filter('upload_mimes', 'como-format_upload'); // Appliquer au filtre

C'est tout, et bien oui !

Vous pouvez modifier la liste des extensions autorisés et interdite, voici la liste des mime_types.

Enfin, pour les plus téméraires, vous pouvez simplement demander à WordPress de ne plus contrôler les formats de fichier que vous uploadez, de regarder ailleurs et de tout laisser passer. Alors évidement, les solutions les plus simples ne sont pas toujours les plus judicieuses. Ce code est à utiliser avec des pincettes, et à ajouter dans le fichier config.php, présent à la racine de votre hébergement :


define( 'ALLOW_UNFILTERED_UPLOADS', true );

Voilà, cela devrait vous permettre d'assouplir votre médiathèque. Et vous, si vous êtes ici, quel type de format avez-vous eu besoin d'ajouter ?

 

Poursuivre votre lecture

Laisser un commentaire

Si vous insérez du code, merci d'utiliser les balises [php] en début et [/php] en fin, ou [html] et [/html]...