Cómo servir diferentes imágenes según el tamaño de pantalla en WordPress

29 may 2013, 12:10:11
Vistas: 21.1K
Votos: 3

Estoy creando un sitio web WordPress responsivo con un enfoque mobile-first.

Cuando mi cliente sube una imagen para una entrada del blog, me gustaría que WordPress genere versiones más pequeñas de la imagen (¡con un tamaño de archivo más pequeño!) que luego se sirvan a pantallas más pequeñas.

Incluso si el usuario tiene que subir varias versiones de la imagen por sí mismo, esto seguiría siendo una buena solución.

Sé que existe una función llamada add_image_size, sin embargo, creo que esta solo cambia las dimensiones de la imagen, y no el tamaño real del archivo. Los diferentes tamaños de archivo son lo más importante aquí.

Entonces, ¿hay algún plugin o código que tenga que escribir para habilitar esto?

Espero recibir cualquier ayuda o consejo sobre esta pregunta.

Gracias

6
Comentarios

Tenemos muchos hilos sobre este tema. ¿Has buscado en nuestro sitio?

fuxia fuxia
29 may 2013 12:21:34

Sí, pero todos los que encontré se refieren solo al cambio de tamaño de imágenes. Quiero que el TAMAÑO DEL ARCHIVO también se reduzca, para que los dispositivos pequeños no descarguen imágenes pesadas.

Adam Adam
29 may 2013 12:27:14

Consulta esta respuesta.

fuxia fuxia
29 may 2013 12:30:55

sí, pero no menciona cómo se producen las diferentes variaciones de la imagen. No puedo reemplazar manualmente cada imagen que el usuario sube en el administrador. Algo como esto podría funcionar http://wordpress.org/plugins/picturefillwp/

Adam Adam
29 may 2013 12:57:12

Podrías echar un vistazo a: http://adaptive-images.com/; información adicional sobre cómo integrarlo con WordPress aquí: http://windcompanionwebdesign.com/articles/wordpress-articles/using-adaptive-images-in-a-wordpress-responsive-design/

Nicolai Grossherr Nicolai Grossherr
29 may 2013 15:08:59

Sé que esta es una publicación antigua, pero mientras la encontraba en mi búsqueda para responder esta misma pregunta, me encontré con este plugin, y parece hacer lo que tú/yo necesitamos. https://en-ca.wordpress.org/plugins/adaptive-images/

KVDD KVDD
27 feb 2017 22:06:53
Mostrar los 1 comentarios restantes
Todas las respuestas a la pregunta 3
2

add_image_size sí cambia el tamaño real del archivo de la imagen.

Lo que he intentado:

function odevice_image_sizes() {
    add_image_size( 'iphone-size', 300, 100, true ); // Por supuesto, las dimensiones no son correctas...
    add_image_size( 'tablet-size', 600, 300, true );
}


function show_odevice_at_img_select($sizes) {
    $sizes['iphone-size'] = __( 'Tamaño de imagen para iPhone' );
    $sizes['tablet-size'] = __( 'Tamaño de imagen para tablet' );

    return $sizes;
}
add_action( 'init', 'odevice_image_sizes' );
add_filter('image_size_names_choose', 'show_odevice_at_img_select');

Cuando verifiques el tipo de dispositivo (iPhone o tablet), puedes usar las imágenes personalizadas así:

<?php the_post_thumbnail( 'iphone-size' ); ?>

No puedo enviarte una captura de pantalla ya que no tengo la reputación necesaria. Pero puedes ver en la carpeta de uploads que las imágenes subidas con tus dimensiones personalizadas tendrán un tamaño diferente (en el disco), por lo que consumirán un ancho de banda diferente. Cuanto más pequeñas sean las dimensiones, menor será el ancho de banda.

29 may 2013 14:43:27
Comentarios

Gracias. Creo que tienes razón, siempre asumí que add_image_size era solo para dimensiones. Parece que esta funcionalidad ya está en WordPress.

Adam Adam
29 may 2013 16:19:28

¿este sigue siendo el método actual en 2017?

Zach Smith Zach Smith
20 ene 2017 12:36:52
0

panos lo entendió correctamente. Puedes usar add_image_size para crear imágenes de diferentes tamaños para diferentes propósitos. Para continuar un poco más con tu pregunta, quiero agregar:

Una vez que hayas creado diferentes tamaños de imágenes con add_image_size, puedes servirlas para diferentes dispositivos usando el plugin de Wordpress Mobble (o cualquier otro reconocimiento de dispositivos basado en php) http://wordpress.org/plugins/mobble

Simplemente haz una declaración if else como esta:

if ( is_mobile() ) : the_post_thumbnail( 'mobile-size' );
elseif( is_tablet() ) : the_post_thumbnail( 'tablet-size' );
else : the_post_thumbnail( 'full' );
endif;
30 may 2013 14:19:24
3
-1

La forma más fácil es usando css

Yo uso el siguiente código en mi sitio.

.your_div img {
height:auto;
max-width:100%;
}

Espero que el código css anterior pueda ayudarte.

29 may 2013 12:18:23
Comentarios

No, ya que los dispositivos más pequeños aún descargan una imagen grande. Mi preocupación aquí es el ancho de banda.

Adam Adam
29 may 2013 12:28:17

Si no quieres usar css. Solo conozco una solución, debes usar "add_image_size". Espero que puedas resolver tu problema.

v123shine v123shine
29 may 2013 12:42:18

Sí, ya mencioné eso en mi pregunta. No creo que lo entiendas.

Adam Adam
29 may 2013 12:58:27