Cómo subir a WordPress tipos de archivo no permitidos.

WordPress, por defecto, sólo permite subir cierto tipo de archivos. Si intentas subir un formato que no está dentro de la siguiente lista, da este error:
Lo siento, este tipo de archivo no está permitido por motivos de seguridad.

Los formatos permitidos son (más información aquí):

Images

  • .jpg
  • .jpeg
  • .png
  • .gif
  • .ico

Documents

  • .pdf (Portable Document Format; Adobe Acrobat)
  • .doc, .docx (Microsoft Word Document)
  • .ppt, .pptx, .pps, .ppsx (Microsoft PowerPoint Presentation)
  • .odt (OpenDocument Text Document)
  • .xls, .xlsx (Microsoft Excel Document)
  • .psd (Adobe Photoshop Document)

Audio

  • .mp3
  • .m4a
  • .ogg
  • .wav

Video

  • .mp4, .m4v (MPEG-4)
  • .mov (QuickTime)
  • .wmv (Windows Media Video)
  • .avi
  • .mpg
  • .ogv (Ogg)
  • .3gp (3GPP)
  • .3g2 (3GPP2)

En ocasiones queremos subir algún formato que no está incluido aquí. Así que hoy os dejamos un Snippet que te permite hacerlo.

Por código.

Código para permitir tipos de archivo no permitidos.

function sm_mime_type ( $mime_types ) {
 $mime_types['XXX'] = 'YYY';
 return $mime_types;}

add_filter('upload_mimes', 'sm_mime_type', 1, 1);

Explicamos el código.
La línea que tenéis que modificar, y de la que podéis añadir tantas como tipos queráis añadir, es
$mime_types[‘XXX’] = ‘YYY’;

Los valores de XXX y YYY los podéis sacar de esta tabla o de esta web.
En vez de XXX ponéis el valor de la extensión (izquierda de la tabla).
En vez de YYY ponéis el valor del tipo (derecha de la tabla).

Por ejemplo para permitir archivos de vídeo webm ponéis:
$mime_types[‘ webm’] = ‘video/webm’;

Nota: os añado algunos tipos que no vienen ahí:

$mime_types[ 'eps' ] = 'application/postscript';
$mime_types[ 'ai'  ] = 'application/pdf';
$mime_types[ 'svg' ] = 'image/svg+xml';
$existing_mimes['psd']  = 'image/vnd.adobe.photoshop';

Por plugin.

Si no queréis complicaros podéis agregar este plugin: File Upload Types by WPForms. Pero recordamos que cuantos más plugins más vectores de ataque dejamos a los “malos” y más lenta será nuestra web.