Ottenere il percorso della miniatura invece del tag immagine
Vedo molti metodi per mostrare le miniature in WordPress, ma non sono immediatamente sicuro di come potrei ottenere solo il percorso della miniatura di un articolo invece del codice HTML pronto generato da funzioni come the_post_thumbnail()
e get_the_post_thumbnail()
.
Quali metodi sono disponibili per ottenere solo il percorso della miniatura (per impostarlo come sfondo) invece del tag <img />
? Ho solo l'opzione di analizzare i risultati del metodo get_
o c'è un modo più semplice?

La miniatura è essenzialmente un allegato, quindi puoi approcciarla da quel lato - cerca l'ID con get_post_thumbnail_id()
e recupera i dati con wp_get_attachment_image_src()
, in questo modo:
if (has_post_thumbnail()) {
$thumb = wp_get_attachment_image_src(get_post_thumbnail_id(), 'thumbnail_name');
echo $thumb[0]; // url della miniatura
}
(fonte)

Quando ho bisogno di visualizzare una miniatura che è allegata alla galleria di un post, utilizzo una funzione personalizzata nel mio functions.php. Potrebbe essere eccessivo per le tue necessità, ma dovrebbe coprire tutto.
In questo esempio, recupero tutte le immagini nella galleria di un post e poi visualizzo ogni immagine in un elemento di lista. La lista contiene l'immagine miniatura racchiusa in un anchor che punta al post da cui proviene l'immagine. La stringa di output può essere facilmente personalizzata in base alle tue esigenze.
function get_gallery_image_thumb_list($size){
global $post;
$args = array(
'numberposts' => null,
'post_parent' => $post->ID,
'post_type' => 'attachment',
'nopaging' => false,
'post_mime_type' => 'image',
'order' => 'ASC',
'orderby' => 'menu_order ID',
'post_status' => 'any'
);
$attachments =& get_children($args);
if ($attachments) {
foreach($attachments as $attachment) {
foreach($attachment as $attachment_key => $attachment_value) {
$imageID = $attachment->ID;
$imageTitle = $attachment->post_title;
$imageCaption = $attachment->post_excerpt;
$imageDescription = $attachment->post_content;
$imageAlt = get_post_meta($imageID, '_wp_attachment_image_alt', true);
$imageArray = wp_get_attachment_image_src($attachment_value, $size, false);
$imageURI = $imageArray[0]; // 0 è l'URI
$imageWidth = $imageArray[1]; // 1 è la larghezza
$imageHeight = $imageArray[2]; // 2 è l'altezza
// Costruisci la stringa <img>
$ImgString = '<li><a href="' . get_permalink() . '" title="' . the_title("", "", false) . '"><img src="' . $imageURI . '" width="' . $imageWidth . '" height="' . $imageHeight . '" alt="' . $imageAlt . '" title="' . $imageTitle . '" /></a></li>';
// Stampa l'immagine
echo $ImgString;
break;
}
}
}
unset($args);}
Quindi chiama la funzione e passa la dimensione dell'immagine che desideri ottenere (thumbnail, medium, large o full) in questo modo:
get_gallery_image_thumb_list("thumbnail");
Questa funzione deve essere chiamata all'interno di The Loop o di un loop personalizzato.
