¿Cómo obtengo solo la URL de la imagen desde the_post_thumbnail()?

12 feb 2011, 09:17:56
Vistas: 82.6K
Votos: 34

Quiero saber cómo obtener solo la URL de la imagen desde the_post_thumbnail(). La salida predeterminada de the_post_thumbnail() es:

<img width="800" height="533" src="http://example.com/wp-content/uploads/2011/02/book06.jpg" class="attachment-post-thumbnail wp-post-image" alt="libro06" title="libro06" />

Aquí quiero obtener solo el src. ¿Cómo puedo filtrar the_post_thumbnail() para obtener solamente http://example.com/wp-content/uploads/2011/02/book06.jpg?

1
Comentarios

posible duplicado de Obtener la ruta de la miniatura en lugar de la etiqueta de imagen

Jan Fabry Jan Fabry
12 feb 2011 17:55:29
Todas las respuestas a la pregunta 6
1
42

También puedes probar:

Si solo tienes un tamaño de miniatura:

$thumbnail = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ) );

O... si tienes múltiples tamaños:

$thumbnail = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), "size" );

Ten en cuenta que wp_get_attachment_image_src() devuelve un array: url, ancho, alto, is_intermediate.

Así que si solo quieres la URL de la imagen:

echo $thumbnail[0];

Recursos:

12 feb 2011 22:17:08
Comentarios

Un pequeño consejo: si estás utilizando la función wp_get_attachment_image_src() con tamaño y quieres obtener exactamente el tamaño de la miniatura: usa el nombre de la miniatura dado en la definición (función add_image_size()). Si usas un array con dimensiones, WP usará el primer tamaño de imagen que tenga el ancho o alto adecuado. Así que podrías obtener una imagen incorrecta. Ejemplo: en lugar de 156x98 podrías haber obtenido 120x98 si tienes 2 imágenes definidas: 156x98 & 120x98 (la altura es la misma). Yo caí en eso una vez ;)

Marek Tuchalski Marek Tuchalski
16 oct 2011 18:15:32
0

Desde WordPress 4.4, hay una función central eficiente que puede manejar esto de una manera más limpia que las respuestas aquí.

Puedes usar the_post_thumbnail_url( $size ) que imprimirá la URL de la miniatura del post.

Alternativamente, si prefieres devolver la URL en lugar de mostrarla inmediatamente, puedes usar $url = get_the_post_thumbnail_url( $post_id, $size )

15 sept 2017 08:14:22
1

Esto hace el truco:

<?php wp_get_attachment_image_src('subgall-thumb'); ?>

Asegúrate de usar el nombre correcto para la miniatura que estás llamando.

21 dic 2012 04:02:04
Comentarios

No sé si esto ha cambiado desde 2012, pero en 2017 el primer parámetro de wp_get_attachment_image_src debe ser el número de ID del adjunto, no el tamaño.

squarecandy squarecandy
12 may 2017 01:07:31
0

Entendido, lo resolví usando simplexml_load_string

$dom = simplexml_load_string(get_the_post_thumbnail());
$src = $dom->attributes()->src;
    echo $src;

Otros métodos también son bienvenidos.

12 feb 2011 10:37:15
0

Por favor utiliza el siguiente código

<?php get_the_post_thumbnail_url(); ?>

Si no es suficiente para lograr tu objetivo, entonces prueba con este código

<?php $postimages = wp_get_attachment_image_src( get_post_thumbnail_id( get_the_ID() ), 'large' );

// Verificar si hay imágenes if ( $postimages ) {

    // Obtener imagen destacada   $postimage = $postimages[0];

} else {} while (have_posts() && $i < 8) : the_post(); echo esc_url( $postimage ); ?>
26 oct 2018 08:31:34
1
-1

Para una solución rápida y sencilla, coloca esto en el archivo functions.php de tu tema

FUNCTION GET_STRING_BETWEEN($STRING, $START, $END){
    $STRING = " ".$STRING;
    $INI = STRPOS($STRING, $START);
    IF ($INI == 0) RETURN "";
    $INI += STRLEN($START);
    $LEN = STRPOS($STRING, $END, $INI) - $INI;
    RETURN SUBSTR($STRING, $INI, $LEN);
}

Usado dentro del loop, esto te dará lo que estás buscando

Esto retornará algo como http://example.com/wp-content/uploads/2019/02/toy-story-two-was-ok.jpg

$THE_FEATURED_IMAGE = GET_STRING_BETWEEN(get_the_post_thumbnail(NULL,'post-large'), 'src="', '" class="');

"Dentro del loop" significa buscar algo como while ( have_posts() ): the_post();.

También puedes reemplazar post-large con cualquiera de estos tamaños predefinidos de imagen:

  • post-thumbnail
  • post-medium
  • post-full
17 feb 2019 02:03:29
Comentarios

eso es malo. ¿por qué usas mayúsculas para tus códigos?

Raptor Raptor
3 jun 2020 05:17:23