wp_get_attachment_image_src siempre devuelve la imagen en tamaño completo

1 jul 2015, 04:50:39
Vistas: 42.8K
Votos: 10

https://codex.wordpress.org/Function_Reference/wp_get_attachment_image_src#Parameters me lleva a pensar que wp_get_attachment_image_src( $thumb_id, array(100, 100) )[0] debería devolver una miniatura de 100x100, pero siempre devuelve la imagen en tamaño completo.

Cualquier ayuda sería muy apreciada.

0
Todas las respuestas a la pregunta 3
2

Creo que este código te será útil:

// Obtener la URL de la imagen destacada en tamaño completo
$src = wp_get_attachment_image_src( get_post_thumbnail_id($post->ID), 'full', false, '' );
// Mostrar la imagen con la URL obtenida
echo '<img src="'.$src[0].'" alt="'.esc_attr(get_the_title()).'" title="'.esc_attr(get_the_title()).'">';
9 abr 2016 14:20:23
Comentarios

¿Qué error está mostrando?

Vidhya Thirugnanam Vidhya Thirugnanam
9 abr 2016 15:50:13

echo '<img src="'.$src[0].'">'; Lo siento, prueba con esto

Vidhya Thirugnanam Vidhya Thirugnanam
9 abr 2016 15:51:28
2

Es necesario tener tamaños de imagen predefinidos. WordPress tiene 3 tamaños por defecto: miniatura 100x100, mediano 300x300 y grande 800x800. Además, tengo un tamaño adicional llamado img-polaroid de 700x320 definido en functions.ini.

El código para obtener las imágenes es:


$image_id = get_post_thumbnail_id();
$image_url = wp_get_attachment_image_src($image_id, 'img-polaroid');
$image_url = $image_url[0];

'img-polaroid' es el '$size' que recupera 700x320, y la forma de imprimir la imagen es:


<img src="<?php echo $image_url; ?>" class="img-polaroid" style="margin:5px 0px 15px;" alt="Imagen polaroid" title="Imagen en estilo polaroid">

Donde class="img-polaroid" es el tamaño real para mostrar, como 100x100 o 200x100 con estilo de foto polaroid definido en los estilos CSS; o puedes usar dentro del código HTML de la imagen height=100 width=100. Con ambos métodos la imagen se verá clara y con buena definición. Para mis propósitos, img-polaroid tiene un tamaño de 320x200 y también está definido como tamaño responsivo.

Si obtienes la imagen $image_url = wp_get_attachment_image_src($image_id,'thumbnail'); e intentas mostrarla en un tamaño mayor, la imagen aparecerá pixelada. ***

Por lo tanto, intenta obtener el tamaño de imagen más cercano al tamaño que necesitas mostrar para no sobrecargar tu página


1 jul 2015 11:04:51
Comentarios

Incluso cuando intento obtener una imagen por su nombre, todavía resulta en la imagen de tamaño completo. Por ejemplo, echo wp_get_attachment_image_src( $thumb, 'medium' )[0]; aún devuelve una imagen de tamaño completo.

corysimmons corysimmons
1 jul 2015 18:14:06

@corysimmons img src=(phpcode &image_url) imprimirá la imagen, medium, full, large son solo tamaños de resolución, intenta ajustar con altura y ancho dentro del estilo CSS o códigos HTML. Si todavía aparece en tamaño completo, necesitas sobrescribir el estilo de la imagen con otro usando un comentario !important, ej. .thumb img{widht:100px !important; height:auto}

Fernando Baltazar Fernando Baltazar
1 jul 2015 18:41:10
1

... me lleva a creer que wp_get_attachment_image_src( $thumb_id, array(100, 100) )[0] devolvería una miniatura de 100x100...

Eso no es exactamente lo que ocurre. La mayor parte del trabajo lo realiza image_downsize() como puedes ver cerca del principio de wp_get_attachment_image_src() :

692         // obtiene una miniatura o imagen intermedia si existe
693         if ( $image = image_downsize($attachment_id, $size) )
694                 return $image;

Si revisas las notas de esa función verás:

134  * La URL podría ser la imagen original, o podría ser una versión redimensionada. Esta
135  * función no creará una nueva copia redimensionada, solo devolverá una ya
136  * redimensionada si existe.

Lo que obtienes (según puedo determinar) es el tamaño más cercano al solicitado con un array que contiene las dimensiones solicitadas de la imagen o las dimensiones reales de la imagen si el tamaño solicitado es mayor que la imagen más grande. Se espera que hagas el resto con HTML y CSS.

1 jul 2015 05:31:31
Comentarios

¿Entonces cómo obtienes una imagen redimensionada?

Victor Marchuk Victor Marchuk
13 oct 2016 08:27:31