Subir archivos de extensiones no permitidas a WordPress - Oxygenados La comunidad
Oxygenados La comunidad hispana
Recoda White Full Logo
Patrocinador
Menu
post oxygen builder

Subir archivos de extensiones no permitidas a WordPress

¿Cómo puedes hacerlo?

Seguro que mas de una vez te has encontrado con el mensaje:

Lo siento, este tipo de archivo no está permitido por motivos de seguridad. 

WordPress limita el formato de los archivos permitidos para evitar la ejecución de código malicioso o virus que pueda destrozar nuestra web; también algunos proveedores hosting deciden limitar la propia lista de extensiones de WordPress para evitar cualquier archivo que ellos consideran como potencialmente peligroso. Pero hay algunos tipos de archivos que no están permitidos pero que nos interesa que si se puedan subir y utilizar en nuestra web, como por ejemplo algún formato de imagen como svg o webp.

Vamos a mostrar un par de formas para lograr que se puedan subir estos tipos, u otros, a nuestra biblioteca de medios.

Permitir la subida de cualquier tipo de archivo

(no recomendado)

Esta solución es la más sencilla pero peligrosa: si permitimos cualquier tipo de archivo, nuestra web será más vulnerable a ataques informáticos o a errores. Por ello, es muy importante que, tras subir el archivo deseado, revertamos los permisos que os explicamos a continuación. ¿Cómo debemos proceder? Lo primero que debemos tener es un permiso de Administrador de Archivos. En nuestro servidor, acudiremos al directorio donde hemos instalado WordPresss y editaremos el archivo wp-config.php, insertando la siguiente línea:

define( 'ALLOW_UNFILTERED_UPLOADS', true);
Click para Copiar
Copiado

Con esto ya se puede subir cualquier tipo de documento y extensión, pero insistimos en que este método no es para nada aconsejable.

Método Selectivo y mas Seguro

El segundo método es un poco mas complicado pero a la vez mas seguro, además de que permitir solo aquellos archivos que nosotros queramos e introduzcamos en el código.
  Para ello utilizamos el código php de abajo, el cuál se puede insertar directamente en el archivo functions.php o bien utilizar un plugin del tipo Advanced Scripts (opción mas recomendable) , aquí se hace uso de la función upload mimes. Esta opción, además de añadir nuevos tipos de extensión autorizada, nos permite eliminar formatos que ya estaban permitidos por defecto en la lista de WordPress. 

<?php
// Tipos de archivos permitidos
add_filter("upload_mimes", function ($mimes) {
        $mimes["json"] = "application/json";
        $mimes['svg'] = 'image/svg';
	$mimes['svgz'] = 'image/svg+xml';
        $mimes['doc'] = 'application/msword';
        $mimes['webp'] = 'image/webp';
    return $mimes;
});

// Forzar el tipo de archivo mime para evitar
//las comprobaciones de seguridad falsas
// debido a problemasde php fileinfo
add_filter("wp_check_filetype_and_ext", function ($result, $file, $filename, $mimes) {
    if (!$result["ext"] || !$result["type"]) {

        $filetype = wp_check_filetype($filename, $mimes);
        $ext = $filetype["ext"];
        $type = $filetype["type"];

        $allowed_types = [
            "json" => [
                "application/json"
            ],
        ];

        if (isset($allowed_types[$ext]) && in_array($type, $allowed_types[$ext])) {
            $result = [
                "ext" => $ext,
                "type" => $type,
                "proper_filename" => $filename
            ];
        }
    }

    return $result;
}, 10, 4);
?>
Click para Copiar
Copiado

Este código lo puedes modificar añadiendo o quitando las extensiones de archivo pertinentes, para ello solo tienes que añadir o modificar tantas líneas $mimes['xxx'] = 'yyy/yyy';  como necesites, donde las x y las y representan los datos de cada archivo.

Hay una tercera solución que es la utilización de un plugin

La solución más sencilla para los que no son expertos o simplemente no quieren modificar archivos de código es la instalación de un Plugin. Esta solución es un poco menos eficiente,  puesto que ralentiza la subida de archivos además de que requiere de la instalación de un plugin, uno muy bueno es el WP Extra File Types que abarca una gran variedad de archivos y para nada es difícil de configurar.

Logo Oxygenados

En este artículo hay enlaces de referido, no te cuesta nada usarlos si te planteas la compra de alguno de estos programas o plugins aquí mencionados, nos ayudas a sufragar los gastos del mantenimiento de este sitio y además es una forma de reconocer nuestro trabajo.

0 0 votos
Puntuación
Suscribir
Notificar de
guest
0 Comentarios
Viejos
Nuevos Más votados
Comentarios en línea
Ver todos los comentarios
Añadir lightbox "Facilmente"

El añadir lightbox con sus efectos visuales parece una tarea difícil y que requiere el uso de un nuevo plugin, pero nada más lejos de la realidad, con Oxygen lo tenemos muy fácil, realmente asombrosamente fácil con dos líneas de código HTML y pocas más de código JavaScript, aquí mostramos como hacerlo.

Leer más
Imagen de Fondo Archivo de Categorías

Vamos a tratar de como añadir un encabezado con la imagen predeterminada para el archivo de categorías, cada categoría tendrá su imagen predeterminada.
Para esto solo se necesita de un plugin gratuito, aunque también se puede hacer con otros como por ejemplo el HappyFiles.

Leer más
Botón de Todos los Templates

Se echa de menos un botón que estando en la sección "Edit Template" nos lleve directamente a la página de Templates que es donde se muestra todo el listado de plantillas de Oxygen, parece que alguien se ha olvidado de este detalle que debería estar implementado nativamente y a veces hasta fastidia un poco tener que cargar dos páginas para llegar ahí estando en la sección de edición de template.

Leer más