Cum să obții calea către thumbnail în loc de tag-ul de imagine în WordPress
Văd multe metode de afișare a thumbnail-urilor în WordPress, dar nu sunt sigur cum aș putea obține doar calea către thumbnail-ul unui post în loc de codul HTML generat de funcții precum the_post_thumbnail()
și get_the_post_thumbnail()
.
Ce metode sunt disponibile pentru a obține doar calea către thumbnail (pentru a o seta ca bgimage) în loc de tag-ul <img />
? Am doar opțiunea de a parsa rezultatele metodei get_
sau există o cale mai ușoară?

Miniatura este în esență un atașament, așa că o poți aborda din această perspectivă - găsește ID-ul cu get_post_thumbnail_id()
și obține datele cu wp_get_attachment_image_src()
, astfel:
if (has_post_thumbnail()) {
$thumb = wp_get_attachment_image_src(get_post_thumbnail_id(), 'thumbnail_name');
echo $thumb[0]; // URL-ul miniaturii
}
(sursa)

Când am nevoie să afișez o miniatură atașată la galeria unui articol, folosesc o funcție personalizată în functions.php. Poate părea exagerat pentru nevoile tale, dar ar trebui să acopere orice situație.
În acest exemplu, preiau toate imaginile din galeria unui articol și le afișez fiecare într-un element de listă. Lista conține imaginea miniatură înfășurată într-un anchor care face legătura către articolul din care provine imaginea. Șirul de ieșire poate fi ușor personalizat în funcție de nevoile tale.
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 este URI-ul
$imageWidth = $imageArray[1]; // 1 este lățimea
$imageHeight = $imageArray[2]; // 2 este înălțimea
// Construiește șirul <img>
$ImgString = '<li><a href="' . get_permalink() . '" title="' . the_title("", "", false) . '"><img src="' . $imageURI . '" width="' . $imageWidth . '" height="' . $imageHeight . '" alt="' . $imageAlt . '" title="' . $imageTitle . '" /></a></li>';
// Afișează imaginea
echo $ImgString;
break;
}
}
}
unset($args);}
Apoi apelezi funcția și transmiți dimensiunea imaginii pe care o dorești returnată (thumbnail, medium, large sau full) astfel:
get_gallery_image_thumb_list("thumbnail");
Această funcție trebuie apelată în Loop sau într-un loop personalizat.
