Come ottenere solo l'URL dell'immagine da the_post_thumbnail()?

12 feb 2011, 09:17:56
Visualizzazioni: 82.6K
Voti: 34

Voglio sapere come ottenere solo l'URL dell'immagine da the_post_thumbnail(). L'output predefinito di the_post_thumbnail() è:

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

Qui voglio estrarre solo il valore di src. Come posso filtrare the_post_thumbnail() per ottenere solo http://example.com/wp-content/uploads/2011/02/book06.jpg?

1
Commenti

possibile duplicato di Ottenere il Percorso della Miniatura invece del Tag Immagine

Jan Fabry Jan Fabry
12 feb 2011 17:55:29
Tutte le risposte alla domanda 6
1
42

Potresti anche provare:

Se hai solo una dimensione per la miniatura:

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

Oppure...se hai più dimensioni:

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

Nota che wp_get_attachment_image_src() restituisce un array: url, larghezza, altezza, is_intermediate.

Quindi se vuoi solo l'URL dell'immagine:

echo $thumbnail[0];

Risorse:

12 feb 2011 22:17:08
Commenti

Un piccolo suggerimento: se stai utilizzando la funzione wp_get_attachment_image_src() con la dimensione e vuoi ottenere esattamente la dimensione della miniatura: usa il nome della miniatura specificato nella definizione (funzione add_image_size()). Se usi un array con le dimensioni, WordPress utilizzerà la prima dimensione di immagine che ha la larghezza o altezza corretta. Quindi potresti ottenere l'immagine sbagliata. Esempio: invece di 156x98 potresti ottenere 120x98 se hai 2 immagini definite: 156x98 & 120x98 (l'altezza è la stessa). Ci sono caduto una volta ;)

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

Da WordPress 4.4, esiste una funzione core efficiente che può gestire questo in modo più pulito rispetto alle risposte qui presenti.

Puoi utilizzare the_post_thumbnail_url( $size ) che stamperà l'URL dell'immagine in evidenza del post.

In alternativa, se preferisci restituire l'URL invece di stamparlo immediatamente, puoi usare $url = get_the_post_thumbnail_url( $post_id, $size )

15 set 2017 08:14:22
1

Questo fa al caso tuo:

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

Assicurati di utilizzare il nome corretto per la miniatura che stai richiamando.

21 dic 2012 04:02:04
Commenti

Non so se sia cambiato dal 2012, ma nel 2017 il primo parametro di wp_get_attachment_image_src deve essere l'id numerico dell'allegato, non la dimensione.

squarecandy squarecandy
12 mag 2017 01:07:31
0

Ok, capito, ho usato simplexml_load_string

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

Sono benvenuti altri metodi.

12 feb 2011 10:37:15
0

Utilizza il codice seguente

<?php get_the_post_thumbnail_url(); ?>

Se non è sufficiente per raggiungere il tuo obiettivo, prova con questo codice

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

// Verifica la presenza di immagini
if ( $postimages ) {

    // Ottieni l'immagine in evidenza
    $postimage = $postimages[0];

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

Per una soluzione rapida e sporca, inserisci questo nel file functions.php del tuo 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);
}

Utilizzato all'interno del loop, questo ti darà ciò che stai cercando

Questo restituirà qualcosa come 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="');

"All'interno del loop" significa cercare qualcosa come while ( have_posts() ): the_post();.

Puoi anche sostituire post-large con una di queste dimensioni predefinite per le immagini:

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

è pessimo. perché usi tutte maiuscole per i tuoi codici?

Raptor Raptor
3 giu 2020 05:17:23