Obteniendo la ruta de la miniatura en lugar de la etiqueta de imagen

1 dic 2010, 20:21:55
Vistas: 11.5K
Votos: 7

Veo muchos métodos para mostrar miniaturas en WordPress, pero no estoy seguro de cómo puedo obtener solo la ruta de la miniatura de una publicación en lugar del código HTML listo para usar generado por funciones como the_post_thumbnail() y get_the_post_thumbnail().

¿Qué métodos están disponibles para obtener solo la ruta de la miniatura (para establecerla como imagen de fondo) en lugar de la etiqueta <img />? ¿Tengo solo la opción de analizar los resultados del método get_ o hay una manera más fácil?

2
Comentarios

¿Tus imágenes son parte de una galería de publicaciones o simplemente están incluidas en la biblioteca de medios?

PNMG PNMG
1 dic 2010 21:19:38

Todas están adjuntas a publicaciones - son miniaturas de las publicaciones.

Sampson Sampson
1 dic 2010 21:35:55
Todas las respuestas a la pregunta 4
0
10

La miniatura es esencialmente un adjunto, por lo que puedes abordarlo desde ese lado: busca el ID con get_post_thumbnail_id() y obtén los datos con wp_get_attachment_image_src(), así:

if (has_post_thumbnail()) {
    $thumb = wp_get_attachment_image_src(get_post_thumbnail_id(), 'thumbnail_name');
    echo $thumb[0]; // URL de la miniatura
}

(fuente)

1 dic 2010 21:10:40
0
get_the_post_thumbnail_url($recent['ID']);

¡El código anterior funcionó perfectamente para mí! Tuve que adivinar la función y mágicamente funcionó.

Es bueno mencionar que utilicé el bucle get_recent_posts en el proceso.

21 dic 2016 04:20:33
0

Un método sería convertir lo que sea que devuelva get_the_post_thumbnail() en un objeto y extraer el atributo src:

$thumbnail = new SimpleXMLElement( get_the_post_thumbnail( $postid ) );
print $thumbnail->attributes()->src;
1 dic 2010 20:34:07
0

Cuando necesito mostrar una miniatura que está adjunta a la galería de una publicación, utilizo una función personalizada en mi functions.php. Puede ser excesivo para tus necesidades, pero debería cubrir todo.

En este ejemplo, recupero todas las imágenes en la galería de una publicación y luego muestro cada imagen en un elemento de lista. La lista contiene la imagen miniatura envuelta en un ancla que enlaza a la publicación de la que proviene la imagen. La cadena de salida se puede personalizar fácilmente según tus necesidades.

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 es la URI
            $imageWidth = $imageArray[1]; // 1 es el ancho
            $imageHeight = $imageArray[2]; // 2 es la altura

            // Construir la cadena <img>
            $ImgString = '<li><a href="' . get_permalink() . '" title="' . the_title("", "", false) . '"><img src="' . $imageURI . '" width="' . $imageWidth . '" height="' . $imageHeight . '" alt="' . $imageAlt . '" title="' . $imageTitle . '" /></a></li>';
            // Mostrar la imagen
            echo $ImgString;
            break;
        }
    }
}

unset($args);}

Luego llama a la función y pasa el tamaño de imagen que deseas obtener (thumbnail, medium, large o full) así:

get_gallery_image_thumb_list("thumbnail");

Esto debe llamarse dentro de The Loop o un bucle personalizado.

1 dic 2010 22:04:30