Función para obtener la URL de la imagen original subida - tamaño completo

3 nov 2014, 19:27:18
Vistas: 75.5K
Votos: 15

Actualmente estoy usando el siguiente código para obtener la URL de la imagen destacada de una entrada de WordPress:

URL="<?php if (function_exists('wp_get_attachment_thumb_url')) {echo wp_get_attachment_thumb_url(get_post_thumbnail_id($post->ID), 'big-size'); }?>"

Pero el código solo devuelve la miniatura más pequeña (150x150px). Esto es lo que obtengo:

http://sitename.com/wp-content/uploads/imagename-150x150.png

Mi pregunta es, ¿cómo puedo hacer que devuelva la URL de la imagen original (imagen a tamaño completo) que sería:

http://sitename.com/wp-content/uploads/imagename.png

Muchas gracias por tu tiempo y ayuda.

0
Todas las respuestas a la pregunta 3
4
41

Existen cuatro tamaños válidos integrados en el núcleo de WordPress.

the_post_thumbnail('thumbnail');    // Miniatura (por defecto 150px x 150px máx)
the_post_thumbnail('medium');       // Resolución mediana (por defecto 300px x 300px máx)
the_post_thumbnail('medium_large'); // Resolución mediana grande (por defecto 768px x 0(altura automática según proporción) máx) desde WP versión 4.4
the_post_thumbnail('large');        // Resolución grande (por defecto 640px x 640px máx)
the_post_thumbnail('full');         // Resolución original de la imagen (sin modificar)

El último es el que estás buscando.

Lo siguiente devuelve la URL.

<?php
  $src = wp_get_attachment_image_src( $attachment_id, $size, $icon );
  echo $src[0];

El código completo podría verse así:

<?php
  $src = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), 'full', false );
  echo $src[0]; // la URL de la imagen destacada

Más información puede encontrarse aquí.

3 nov 2014 19:29:39
Comentarios

Gracias por tu respuesta. En realidad estoy buscando una función que devuelva la "URL" de la imagen y no la imagen en sí. Así que dudo que the_post_thumbnail vaya a funcionar para eso. ¿O quizás estoy equivocado?

theshorttree theshorttree
3 nov 2014 19:32:23

@theshorttree mira mi respuesta actualizada.

SLH SLH
3 nov 2014 19:34:23

¡Eso funcionó perfectamente, muchas gracias por tu tiempo y respuesta!

theshorttree theshorttree
3 nov 2014 19:56:45

Sigue siendo relevante en 2022. Quería una miniatura pero the_post_thumbnail_url() estaba devolviendo imágenes completas porque el valor del parámetro por defecto es 'post-thumbnail' en lugar de 'thumbnail' pero mi nuevo tema personalizado no lo tenía. Gracias a esta lista, encontré la solución para mostrar miniaturas: <img class="post-thumb" src="<?php the_post_thumbnail_url('thumbnail') ?>">

nothingisnecessary nothingisnecessary
26 jul 2022 05:15:58
1

Para aquellos que llegan aquí después de octubre de 2019

WordPress ha introducido un "Umbral de Imagen Grande" desde la versión 5.3 (Enlace)

En resumen, todas las imágenes por encima de 2560px serán reducidas al subirlas. Al llamar al formato de imagen "full" ya no siempre devolverá la imagen original sin modificar, sino que podría devolver esa versión de 2560px y tendrá '-scaled' en la URL y la ruta.

Aún puedes obtener la URL y la ruta de las imágenes subidas originalmente con las siguientes funciones: wp_get_original_image_path() o wp_get_original_image_url(). Aunque la documentación sugiere que se añadió un nuevo tamaño "original_image", wp_get_attachment_image, wp_get_attachment_image_src o funciones similares siguen devolviendo la versión reducida. Así que, hasta donde sé, no hay forma de obtener las dimensiones originales del archivo, etc.

3 may 2020 02:08:55
Comentarios

¡Esta debería ser la respuesta aceptada actualmente!

MCFreddie777 MCFreddie777
25 mar 2021 17:12:38
0

Un poco tarde para la fiesta,

pero

get_the_post_thumbnail_url(null,'full'); hace exactamente el trabajo, donde 'full' puede ser reemplazado por 'thumbnail', 'medium', 'medium_large' o 'large'.

10 nov 2018 12:38:25