Archivos en 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. Ah, y por 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.

Cuando intentas subir una imagen .SVG a WordPress pasa esto.
Cuando intentas subir una imagen .SVG a WordPress pasa esto. Ya te lo habíamos explicado anteriormente aquí.

Recientemente hemos recibido un comentario que nos preguntaba cómo poder ampliar esta lista añadiendo más tipos de archivo. Como seguramente hay mucha más gente interesada en saber cómo hacer esto, en esta entrada te explico la solución.

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:

define( 'ALLOW_UNFILTERED_UPLOADS', true );

Ya te hemos hablado anteriormente en esta entrada de las posibilidades que el archivo wp-config.php nos permite modificar el comportamiento por defecto de WordPress. 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. Si quieres saber más sobre filtros y acciones, léete este otro artículo.

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 tu 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.

Nelio Unlocker

Pásate a WordPress manteniendo tus diseños y contenidos

Mejora hoy mismo el SEO de tu web y acelera su velocidad de carga convirtiendo tus páginas a estándares HTML, CSS y WordPress. No necesitas conocimientos técnicos y solo pagarás por aquello que necesites.

Resumen final

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.

Ahora te toca a ti. Explícanos que tipos de archivo echas de menos en WordPress y cual ha sido tu experiencia utilizando las soluciones que te he propuesto en esta entrada.

Imagen destacada de Andrew Pons.

14 respuestas a «Cómo subir archivos con extensiones adicionales a WordPress»

  1. Avatar de Sergio
    Sergio

    Y si no tengo ni idea de código PHP, que plugin me puedo instalar y que me haga la faena?? Es que no quiero tocar donde no se!! Muchas Gracias.

    1. Avatar de Antonio Villegas

      Aunque no lo he probado, échale un ojo a este.

  2. Avatar de Alexander
    Alexander

    Hola Antonio! no soy tampoco mucho de manejo de código, encontré esta solución: https://www.youtube.com/watch?v=kOpg2EnaaSI
    pero antes de entrar al lio me gustaría tener el consejo de un experto. ¿Que opinas? y de antemano Gracias!

    1. Avatar de Antonio Villegas

      El plugin Add From Server es una opción que funciona. Lo he usado bastante y te lo recomiendo.

  3. Avatar de Ignasi

    Hola Antonio, no consigo habilitar un filtro para el formato .exe creo que es debido a que no introduzco la MIME correcta, he probado con (application/vnd.microsoft.portable-executable) y con (application/octet-stream)
    pero me sigue denegando la subida.

    Modificando wp-config.php puedo hacerlo, pero me parece un tanto «salvaje» abrir la caja de pandora, así que prefiero poder seleccionar solo determinados formatos.

    function formatos_personalizados ( $mime_types ) {
    $mime_types[‘exe’] = ‘application/vnd.microsoft.portable-executable’;
    return $mime_types;}

    add_filter(‘upload_mimes’, ‘formatos_personalizados’, 1, 1);

    1. Avatar de Antonio Villegas

      Prueba poniendo ‘application/exe’ como mime type. Debería funcionar 😉

  4. Avatar de cecilia
    cecilia

    Hola que tal, hice todo tal cual pero sigo sin poder importar los widgets (archivo .json) Da el mismo error, alguna solución alternativa?
    muchas gracias!

    1. Avatar de Antonio Villegas

      Quizás no has puesto el código correctamente o el archivo que intentas subir no tiene el tipo de archivo indicado (aunque la extensión sea .json).

  5. Avatar de German Ronderos
    German Ronderos

    los archivos KML si los recibe? o hay que hacer algo para que lo haga?

    1. Avatar de Antonio Villegas

      Parece que tienes que añadir el soporte adecuado, tal y como se explica aquí.

  6. Avatar de marcos
    marcos

    como puedo añadir un archivo con extensión .apk gracias

    1. Avatar de Antonio Villegas

      El mime type que tienes que usar en ese caso es ‘application/vnd.android.package-archive’.

  7. Avatar de Satur D
    Satur D

    Hola, me esta dando el error de «Lo siento, no tienes permisos para subir este tipo de archivo.» con un .docx de Word. Se supone que es un formato admtido, ¿correcto?.
    En cualquier caso también he buscado el MIME para docx y tampoco existe.

    ¿Alguna idea para subir un docx?

    1. Avatar de Antonio Villegas

      El MIME del docx es application/vnd.openxmlformats-officedocument.wordprocessingml.document, ¿seguro que estás usando ese?

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

He leído y acepto la política de privacidad de Nelio Software

Tus datos personales se almacenarán en SiteGround y serán usados por Nelio Software con el único objetivo de publicar tu comentario aquí. Con el envío de este comentario, nos das el consentimiento expreso para ello. Escríbenos para acceder, rectificar, limitar o eliminar tus datos personales.