Come posso ottenere l'URL dell'immagine solo su the_post_thumbnail


33

Voglio sapere come attivare l'URL dell'immagine the_post_thumbnail()

Predefinito 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" />

Qui voglio prendere solo la SRC. Come faccio a filtrare the_post_thumbnail()solo per ottenerehttp://domain.com/wp-content/uploads/2011/02/book06.jpg

Fammi sapere


Risposte:


41

Potresti anche provare:

Se hai solo un'anteprima di una dimensione:

$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" );

Si noti 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:


Un piccolo suggerimento: se si utilizza la funzione wp_get_attachment_image_src () con le dimensioni e si desidera ottenere le dimensioni esatte dell'anteprima: utilizzare il nome dell'anteprima indicato nella definizione (funzione add_image_size ()). Se si utilizza un array con dimensioni, WP utilizzerà la prima dimensione dell'immagine con larghezza o altezza adeguate. Quindi potresti avere un'immagine sbagliata. Esempio: invece di 156x98 potresti avere 120x98 se hai 2 immagini definite: 156x98 e 120x98 (l'altezza è la stessa). Mi sono
innamorato

2

Questo fa il trucco:

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

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


Non so se questo sia cambiato dal 2012, ma nel 2017 il primo parametro di wp_get_attachment_image_srcdeve essere il numero ID dell'attacco , non la dimensione.
squarecandy


0

Ok capito simplexml_load_string

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

Un altro metodo è il benvenuto.


0

Si prega di utilizzare il seguente codice

<?php get_the_post_thumbnail_url(); ?>

Se non è abbastanza per raggiungere il tuo obiettivo, prova sotto il codice

<?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 ); ?>

0

Per una soluzione rapida e sporca, schiaffeggia 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 ciclo, questo ti darà ciò che stai cercando

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

* "Within the loop" = cerca qualcosa di simile a while (have_posts ()): the_post ();

** Puoi anche inserire " post-large " con una qualsiasi di queste dimensioni predefinite dell'immagine: post-thumbnail, post-medium, post-full

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.