¿Cómo obtengo la URL de la imagen solo en the_post_thumbnail

33

Quiero saber cómo obtener la URL de la imagen the_post_thumbnail()

Defecto the_post_thumbnail()

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

Aquí quiero agarrar el src solamente. ¿Cómo filtro the_post_thumbnail()solo para obtenerhttp://domain.com/wp-content/uploads/2011/02/book06.jpg

Házmelo saber

jaja
fuente

Respuestas:

41

También puedes probar:

Si solo tiene una miniatura de tamaño:

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

O ... si tiene varios tamaños:

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

Tenga en cuenta que wp_get_attachment_image_src () devuelve una matriz: url, width, height, is_intermediate.

Entonces, si solo quieres la URL de la imagen:

echo $thumbnail[0];

Recursos:

Ross
fuente
Una pequeña pista: si está utilizando la función wp_get_attachment_image_src () con tamaño y desea obtener el tamaño exacto de la miniatura: use el nombre de la miniatura dado en la definición (función add_image_size ()). Si usa una matriz con dimensiones, WP usará el primer tamaño de imagen que tenga el ancho o la altura adecuados. Entonces puede obtener una imagen incorrecta. Ejemplo: en lugar de 156x98, es posible que tenga 120x98 si tiene 2 imágenes definidas: 156x98 y 120x98 (la altura es la misma). Me enamoré una vez;)
Marek Tuchalski
2

Esto hace el truco:

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

Asegúrese de usar el nombre correcto para la miniatura a la que llama.

Anna
fuente
No sé si esto ha cambiado desde 2012, pero en 2017 el primer parámetro wp_get_attachment_image_srcdebe ser el número de identificación del archivo adjunto, no el tamaño.
squarecandy
0

Ok lo tengo usando simplexml_load_string

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

Otro método es bienvenido.

jaja
fuente
0

Utilice el siguiente código

<?php get_the_post_thumbnail_url(); ?>

Si no es suficiente para lograr su objetivo, intente debajo del código

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

// Check for images if ( $postimages ) {

    // Get featured image   $postimage = $postimages[0];

} else {} while (have_posts() && $i < 8) : the_post(); echo esc_url( $postimage ); ?>
Jit Gurav
fuente
0

Para una solución rápida y sucia, ingrese esto en el archivo functions.php de su 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);
}

Utilizado dentro del bucle, esto le dará lo que está buscando.

Esto devolverá algo como http://foo.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 bucle" = busca algo como while (have_posts ()): the_post ();

** También puede sub - sub " post-large " con cualquiera de estos tamaños de imagen predefinidos: post-thumbnail, post-medium, post-full

Taylor Hunt
fuente