get_thumbnail_id devuelve la imagen en tamaño completo

19 dic 2014, 10:18:31
Vistas: 18.9K
Votos: 4

Quiero obtener una miniatura de la imagen destacada de las publicaciones como URL. Estoy usando el siguiente código para obtener un tamaño más pequeño de la imagen destacada.

$post[$i]['thumbnail'] = wp_get_attachment_url(get_post_thumbnail_id($post[$i]['id'], 'thumbnail'));

Sin embargo, siempre devuelve la imagen en tamaño completo, incluso probé con:

$post[$i]['thumbnail'] = wp_get_attachment_url(get_post_thumbnail_id($post[$i]['id'], array(120,140)));

Pero sigue devolviendo la imagen grande. ¿Cómo puedo solucionarlo?

1
Todas las respuestas a la pregunta 3
1

Puedes intentar usar la función wp_get_attachment_image_src()

$thumb_id = get_post_thumbnail_id($post[$i]['id']);
$thumb_url_array = wp_get_attachment_image_src($thumb_id, 'thumbnail', true);
$post[$i]['thumbnail'] = $thumb_url_array[0];

En el código anterior, wp_get_attachment_image_src() devuelve un array con la src de la imagen, altura y ancho, $thumb_url_array[0] es tu miniatura.

19 dic 2014 10:36:25
Comentarios

prefiero mucho más esta solución ya que se puede usar fuera de un archivo de tema

user1889580 user1889580
28 ene 2016 19:27:50
4

Hola, primero añade esta línea en tu archivo function.php

add_image_size( 'custom-size', 120, 140 );

Luego llama al tamaño personalizado así:

<?php $thumb_id = get_post_thumbnail_id( $id );
                if ( '' != $thumb_id ) {
                    $thumb_url  = wp_get_attachment_image_src( $thumb_id, 'custom-size', true );
                    $image      = $thumb_url[0];
                }?>
            <img src="<?php echo $image;?>" alt="Imagen personalizada" title="Imagen con tamaño personalizado">

Creo que funcionará bien

19 dic 2014 10:43:22
Comentarios

pero ¿qué es 'thumbnail'? ¿También está devolviendo el tamaño completo de la imagen? ¿No es un tamaño miniatura?

rksh rksh
19 dic 2014 10:44:06

oye, el tamaño de miniatura se define en el panel de administración de WordPress en ajustes->medios->Tamaño de miniatura. Por favor verifica qué tamaño está definido en medios para la miniatura

Amit Mishra Amit Mishra
19 dic 2014 10:46:03

@amrith está configurado al predeterminado 150x150 pero no estoy obteniendo ese tamaño, me está devolviendo el tamaño completo

rksh rksh
19 dic 2014 11:14:54

oye rksh por favor revisa la respuesta editada, funciona para mí

Amit Mishra Amit Mishra
19 dic 2014 11:30:25
0

La sintaxis se define como

<?php echo get_the_post_thumbnail( $post_id, $size, $attr ); ?> 

Puedes obtener el tamaño de miniatura predeterminado de WordPress (150x150) con el siguiente código:

<?php get_the_post_thumbnail( $post_id, 'thumbnail' ); ?>

Si deseas una miniatura con un tamaño personalizado, usa el siguiente código:

<?php get_the_post_thumbnail( $post_id, array( 200, 200) ); ?>

Para más referencia, visita el Codex de WordPress Haz clic aquí

19 dic 2014 15:27:20