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

11

Actualmente estoy usando el siguiente código para obtener la URL de la imagen destacada de una publicación 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 consigo que devuelva la URL de la imagen original (imagen de tamaño completo) que sería:

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

Muchas gracias por tu tiempo y ayuda.

theshorttree
fuente

Respuestas:

27

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

the_post_thumbnail('thumbnail');    // Thumbnail (default 150px x 150px max)
the_post_thumbnail('medium');       // Medium resolution (default 300px x 300px max)
the_post_thumbnail('medium_large'); // Medium Large resolution (default 768px x 0(means automatic height by ratio) max) since WP version 4.4
the_post_thumbnail('large');        // Large resolution (default 640px x 640px max)
the_post_thumbnail('full');         // Original image resolution (unmodified)

El último es uno que estás buscando.

Lo siguiente devuelve la URL.

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

Todo el código puede verse así:

<?php
  $src = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), 'full', false );
  echo $src[0]; // the url of featured image

Más información se puede encontrar aquí .

SLH
fuente
Gracias por tu respuesta. De hecho, estoy buscando una función para devolver la "URL" de la imagen y no la imagen en sí. Así que dudo si the_post_thumbnail va a funcionar para eso. O tal vez estoy equivocado?
theshorttree el
@theshorttree ver mi respuesta actualizada.
SLH
Eso funcionó totalmente, ¡muchas gracias por su tiempo y respuesta!
theshorttree el
1

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.

usuario206904
fuente
1

Para aquellos que vienen 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 de más de 2560 px se reducirán al subir. Llamar al formato de imagen "completo" ya no siempre devolverá la imagen original intacta, pero podría devolver esa versión de 2560 px y habrá "escalado" en la URL y la ruta.

Aún puede obtener la URL y la ruta de las imágenes cargadas originalmente con las siguientes funciones: wp_get_original_image_path()o wp_get_original_image_url(). Aunque la documentación sugiere que "original_image"se agregó un nuevo tamaño , wp_get_attachment_image, wp_get_attachment_image_src o funciones similares aún devuelven la versión reducida. Entonces, hasta donde puedo decir, no hay forma de obtener las dimensiones originales del archivo, etc.

Vinobe
fuente