Cómo subir archivos con extensiones adicionales a WordPress

Poder gestionar los archivos que vamos subiendo a WordPress en un único sitio suele ser algo muy interesante. Y aunque la biblioteca de medios podría mejorarse (etiquetado de archivos, clasificación por temáticas o por extensión de los archivos, búsqueda de duplicados, etc.), su utilidad es muy clara para poder compartir o reaprovechar archivos entre nuestras entradas sin tener que subirlos más de una vez.

Quizás no te habías dado cuenta, pero WordPress sólo permite subir archivos a la biblioteca de medios si estos cumplen ciertas condiciones. En concreto, sólo podrás subir los siguientes tipos de archivos por defecto:

  • Imágenes
    • .jpg
    • .jpeg
    • .png
    • .gif
    • .ico
  • Documentos
    • .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)

Sin embargo, no todos los proveedores de hosting permiten todos estos archivos. Algunos los limitan, así como el tamaño máximo de archivo que puedes subir. Si tienes problemas subiendo estos archivos, contacta primero con tu proveedor para ver cómo lo solucionas. Si la lista de tipos de archivo que se pueden subir va ampliándose, en el Codex podrás encontrar siempre la versión más actualizada.

Modificando wp-config.php

Si no queremos filtrar los tipos de extensión de archivos y así conseguir que sea posible subir a la librería de medios cualquier archivo, lo más fácil es añadir la siguiente línea dentro del archivo wp-config.php:

Utilizando la instrucción anterior estamos permitiendo a todos los administradores poder subir cualquier tipo de archivo. Ten en cuenta que esto puede llegar a ser peligroso si no confías demasiado en tus administradores y en lo que te puedan hacer. Sé cuidadoso al añadirlo o quizás acabes arrepintiéndote.

Utilizando el filtro upload_mimes

Si queremos solucionar el problema de poder subir extensiones de archivo adicionales a WordPress pero queremos ser mucho más selectivos y únicamente permitir un subconjunto controlado de extensiones, lo mejor que podemos hacer es utilizar el filtro upload_mimes de WordPress. Tienes toda la información, como siempre, en el Codex.

La solución es muy sencilla. Tan solo has de añadir un código similar al siguiente dentro del archivo functions.php de tu tema o creando un plugin nuevo:

Obviando la primera línea, que no has de añadir ya que solo sirve para abrir la definición de código PHP, en la línea 2 indicamos que la función my_mime_types se ejecutará con el filtro upload_mimes.

A continuación, entre las líneas 3 y 10 definimos la propia función my_mime_types. En esta función nos pasan como parámetro $mime_types que es una lista de tipos permitidos. Por tanto, si queremos, por ejemplo, permitir las extensiones SVG y JSON en la biblioteca de medios, tan solo hemos de añadir las líneas 4 y 5, respectivamente.

Para añadir un tipo de extensión nuevo solo hay que crear una nueva entrada en la lista $mime_types con el tipo de extensión y su mime type. Para saber el mime type de una extensión tienes que ir a la lista oficial de media types que la organización IANA (Internet Assigned Numbers Authority) define.

Pero además, si crees que por defecto WordPress permite demasiados tipos de archivo también podrás prohibir los tipos de archivo que tú quieras tal y como hemos hecho en las líneas 7 y 8 del ejemplo anterior. Estas dos instrucciones eliminan la posibilidad de poder subir archivos de Microsoft Excel.

Como has podido ver, modificar el comportamiento de WordPress por defecto para tener un control mayor de los tipos de archivo que permites en tu instalación es muy sencillo. Y lo mejor de todo es que no vas a necesitar instalar un plugin complicado para ello. Con unas pequeñas líneas de código PHP o incluso modificando el archivo wp-config.php conseguirás tu objetivo.

Esperamos haber sido de gran ayuda con este tutorial, para conocer más de nuestros tutoriales puedes ingresar en Ayuda Hosting.

 

¿Te resultó útil este artículo?

Artículos relacionados