Avisos
Vaciar todo

Limitar tamaño de imagen subida a la librería multimedia  

 
daniel.martin.alonso@gmail.com
 daniel.martin.alonso@gmail.com
Usuario experto

Buenos días,

¿Sabéis cómo puedo limitar en WordPress el tamaño de las imágenes que se pueden subir a la librería multimedia?

Por ejemplo, limitarlo a 250Kb. Que no se puedan subir imágenes con un peso (en Kb) mayor al especificado.

Gracias,
Daniel.

URL del sitio: Contenido solo visible a usuarios registrados

Citar
Respondido : 14/05/2018 9:38 am
Pepe
 Pepe
Soporte CMS Webempresa Admin

Hola Daniel.

Podrías utilizar una función.

.- Edita el archivo fuctions.php que encontraras en la carpeta de tu plantilla y al final del archivo añade lo siguiente:

function check_valid_image_size( $file ) {
    $allowed_mimetypes = array('image/gif', 'image/jpeg', 'image/png', 'image/bmp');
 
    if (!in_array($file['type'], $allowed_mimetypes)){
        return $file;
    }
 
    $image = getimagesize($file['tmp_name']);
 
    $maximum = array(
        'width' => '1024',
        'height' => '768'
    );
 
    $image_width = $image[0];
    $image_height = $image[1];
 
    $too_large = "Image dimensions are too large. Maximum size is {$maximum['width']} by {$maximum['height']} pixels. Uploaded image is $image_width by $image_height pixels.";
 
    if ( $image_width > $maximum['width'] || $image_height > $maximum['height'] ) {
        //add in the field 'error' of the $file array the message
        $file['error'] = $too_large;
        return $file;
    }else {
        return $file;
    }
}
add_filter('wp_handle_upload_prefilter', 'check_valid_image_size');

Este código lo que realiza es comprobar que la imagen no sea más ancha de 1024px o más alta de 768px. En caso de producirse una de estas dos condiciones, devolverá un error y el archivo no se subirá.

Recuerda realizar una copia del archivo antes de añadir el código 😉

Un saludo

ResponderCitar
Respondido : 14/05/2018 10:29 am

Gestor de Contraseñas - VPN Conexión Segura - Gestor 2FA (Segundo Factor de Autenticación

daniel.martin.alonso@gmail.com
 daniel.martin.alonso@gmail.com
Usuario experto

Gracias Pepe. Perfecto para las dimensiones.

En cuanto al tamaño (peso) del archivo, he visto el siguiente snippet:

 $limit ) {
    $file['error'] = 'Image files must be smaller than ' . $limit_output;
  }//end if

  return $file;

}//end nelio_max_image_size()
add_filter( 'wp_handle_upload_prefilter', 'nelio_max_image_size' );

Podría utilizar los 2 de forma simultánea.

Una pregunta respecto a los snippets: ¿podría guardarlos en un archivo en la carpeta wp-content/mu-plugins para que funcionaran como un plugin? ¿Bastaría con copiar/pegar los snippets en el archivo?

Otra pregunta, de un servicio que he visto de optimización. Se trata de https://imagify.io , de la gente de WP Rocket. ¿Lo conoces? ¿Lo recomiendas? Es de pago pero si merece la pena invierto en él para mis webs y las de mis clientes.

Gracias de nuevo,
Daniel.

ResponderCitar
Respondido : 14/05/2018 11:10 am
Pepe
 Pepe
Soporte CMS Webempresa Admin

Hola Daniel.

Podría utilizar los 2 de forma simultánea.
Si, sin problemas podrías utilizar las dos funciones.

¿podría guardarlos en un archivo en la carpeta wp-content/mu-plugins para que funcionaran como un plugin

No es tan fácil, no sirve solo con copiar el código, tienes que crear el plugin.

Si que existe un plugin Pluginception que te ayuda a crear nuevos plugin's
-> https://es.wordpress.org/plugins/pluginception/

Una vez instalado, verás que en el menú de administrador en el apartado Plugins tienes una función nueva llamada “Create a new plugin”.

Si pinchas en esta opción, abrirá una nueva pantalla con varios campos vacíos para que incluyas los datos que te solicitan. Todos los campos son opcionales excepto el primero, donde deberás incluir el nombre del plugin, que será el que te aparezca después en tu listado de plugins. Como recomendación cumplimentar el campo “Description” con una descripción rápida de la función que vas a incluir, para que en el momento que no la necesites y quieres desactivarla la puedas localizar rápidamente.

Pinchar en el botón que tienes al final que pone “Create a blank plugin and activate it” se abrir otra página con un cuadro en blanco, donde aparecen registrados los campos que has cumplimentado en el paso anterior.

Añade el código de la función justo debajo de “*/” y pulsa sobre el botón que tienes debajo que pone “Actualizar Archivo

.- Si vuelves al listado de los plugins instalados en tu WordPress, verás que te aparece uno nuevo con los datos que tú has incluido en los pasos anteriores.

Un saludo

ResponderCitar
Respondido : 14/05/2018 11:36 am

optimiza-automaticamente-todas-las-imagenes-de-tu-wordpress

daniel.martin.alonso@gmail.com
 daniel.martin.alonso@gmail.com
Usuario experto

Umm..gracias por el aporte, pero tengo un pseudo-plugin (por llamarlo de alguna manera) en la carpeta mu-plugins con este snippet y funciona perfectamente:

<?php
function ra_custom_login() {
	echo '';
}
add_action('login_head', 'ra_custom_login');
?>

Por eso preguntaba que si funcionaría metiendo los 2 snippets en un archivo .php. Probaré ambas opciones, a ver si funciona la que te comentaba.

Me queda sin responder la pregunta de un servicio que he visto de optimización de imágenes. Se trata de imagify.io, de la gente de WP Rocket. ¿Lo conoces? ¿Lo recomiendas? Es de pago pero si merece la pena invierto en él para mis webs y las de mis clientes.

Gracias,
Daniel.

ResponderCitar
Respondido : 14/05/2018 11:43 am
Pepe
 Pepe
Soporte CMS Webempresa Admin

Hola Daniel.

Tienes el plugin optimizador.io creado por Webempresa para optimizar todas las imágenes de tu web, este plugin es gratuito para todos los clientes de Webempresa, funciona muy bien y no tienes que gastarte dinero.

-> https://optimizador.io/

Un saludo

ResponderCitar
Respondido : 14/05/2018 12:12 pm

wpdoctor-revisa-la-salud-de-tu-wordpress

daniel.martin.alonso@gmail.com
 daniel.martin.alonso@gmail.com
Usuario experto

Hola Pepe,

Lo probé en 2 webs, y no llegó al 10% de optimización.

Por otra parte, el plugin no realiza un reescalado de imágenes. Por ejemplo, si un usuario sube una imagen de 3000x2000 con peso de 6mb, optimizará la imagen en esas dimensiones.

Lo que busco también es que, aparte de la optimización, se haga un reescalado a un tamaño máximo que pueda configurar. Por ejemplo, ancho máximo de 1.200 px.

De ahí el servicio que te comentaba, que hace el reescalado y la optimización, y todo en la nube, sin consumir recursos en el servidor.

Si hay alguna opción que pueda combinar (de forma automática) con Optimizador.io soy todo oídos.

Saludos,
Daniel.

ResponderCitar
Respondido : 14/05/2018 12:27 pm
Pepe
 Pepe
Soporte CMS Webempresa Admin

Hola Daniel.

Dudo que cualquier compresor te optimice mas la imágenes, lo utilizo para una web de periódico, la cual utiliza muchas imágenes, y después de comprimirlo con photoshop y pasarlo por TinyPNG aun lo comprime más.

Piensa que esta clase de plugins comprimen la imagen hasta un punto en el que ya no se puede comprimir mas sin perder la calidad de la imagen.

el plugin no realiza un reescalado de imágenes
Tienes el siguiente plugin que realiza un escalado máximo de la imagen:
-> https://wordpress.org/plugins/resize-image-after-upload/

Otra opción si tienes problemas con las imágenes que se suben es trabajar con un CDN, con eso evitas tener tus imágenes en el servidor y son distribuidas des servidores independientes:

-> https://www.webempresa.com/blog/cdn-wordpress.html

Un saludo

ResponderCitar
Respondido : 14/05/2018 1:39 pm

Cursos Gratuitos WordPress

daniel.martin.alonso@gmail.com
 daniel.martin.alonso@gmail.com
Usuario experto

Hola Pepe,

¿El plugin que comentas (wordpress.org/plugins/resize-image-after-upload/) funcionaría en conjunto con vuestro Optimizador.io?

Es decir, ¿se sube la imagen y el plugin "resize-image-after-upload" primero la redimensiona? ¿Y luego automáticamente sería optimizada por Optimizador.io?

¿Funcionaría así? ¿En "automático"?

Gracias,
Daniel.

ResponderCitar
Respondido : 14/05/2018 1:47 pm
Pepe
 Pepe
Soporte CMS Webempresa Admin

Daniel.

¿se sube la imagen y el plugin "resize-image-after-upload" primero la redimensiona? ¿Y luego automáticamente sería optimizada por Optimizador.io?
Si, son dos plugins independientes, uno te realizara la redimension de la imagen y el otro la comprimirá, la mejor manera de comprobarlo es probarlo 😉

Un saludo

ResponderCitar
Respondido : 14/05/2018 2:02 pm