Как получить URL изображения в полном размере по ID вложения

29 июл. 2017 г., 01:20:32
Просмотры: 17.5K
Голосов: 1

Я не вижу способа получить URL изображения в полном размере для вложения.

Да, я могу использовать get_the_post_thumbnail_url($post->ID, 'full'), но это не поможет, если изображение не является миниатюрой записи.

wp_get_attachment_metadata для моего вложения не показывает размер full, поэтому wp_get_attachment_image_src($imageID, 'full') ничего не возвращает.

Как получить полную версию изображения по ID вложения?

2
Комментарии

В sizes нет full, оригинал находится под ключом file в данных, возвращаемых из wp_get_attachment_metadata. В любом случае, wp_get_attachment_image_src($imageID, 'full') является правильным и вернет массив, содержащий URL.

Milo Milo
29 июл. 2017 г. 01:35:30

Я думал, что проверил wp_get_attachment_image_url($imageID, 'full') перед публикацией. Вы правы, к моему удивлению. Не уверен, почему я думал, что это не работает

Jeff Wilkerson Jeff Wilkerson
29 июл. 2017 г. 03:22:50
Все ответы на вопрос 2
2

Я решил это с помощью wp_get_attachment_url($imageID);

Но вы также можете использовать wp_get_attachment_image_url($imageID, 'full')

29 июл. 2017 г. 03:27:18
Комментарии

Джефф, это именно то, что я ответил тебе во второй части моего ответа...

rudtek rudtek
30 июл. 2017 г. 01:48:41

Я не спрашивал про миниатюры записей. Я конкретно спрашивал про вложения, не привязанные напрямую к записи. Не стесняйся скорректировать свой ответ соответствующим образом... и я понял, что допустил ошибку при тестировании wp_get_attachment_image_url() только после того, как @milo указал на это.

Jeff Wilkerson Jeff Wilkerson
30 июл. 2017 г. 19:34:09
1

Думаю, вы слишком усложняете систему. К сожалению, используемая терминология не помогает. Здесь "Thumbnail" — это фактическое изображение, которое вы получаете через get_the_post_thumbnail_url().

Например, допустим, сегодня вы загрузили изображение с именем myimage.jpg.

Оно будет сохранено (если вы храните изображения по дате) в этой директории: /wp-content/uploads/2017/07/myimage.jpg.

Теперь, когда вы вызываете:

$featured_img_url = get_the_post_thumbnail_url('full');  //(или оставьте параметр пустым)

echo $featured_img_url;

вы получите:

http://www.example.com/wp-content/uploads/2017/07/myimage.jpg

С другой стороны, если использовать этот код:

$featured_img_url = get_the_post_thumbnail_url('thumbnail');  //(или выберите другой размер миниатюры...medium...large...)

echo $featured_img_url;

он вернет:

http://www.example.com/wp-content/uploads/2017/07/myimage30x30.jpg

автоматически сгенерированное изображение на основе ваших настроек миниатюр.

Чтобы избежать путаницы с именами, можно также попробовать...

wp_get_attachment_image_url()

но для этого требуется ID вложения (attachment id), а не ID записи, независимо от того, находитесь ли вы в цикле.

$imgid = 6; //нужно получить динамически
$imgurldesktop = wp_get_attachment_image_url( $imgid, '' ); //использует размер по умолчанию
$imgurlmobile = wp_get_attachment_image_url( $imgid, 'home-slide-img-mobile' ); //использует пользовательский размер
29 июл. 2017 г. 01:33:42
Комментарии

Я говорю о изображениях, загруженных через Advanced Custom Fields, которые не привязаны напрямую к записи. Поэтому я работаю с wp_get_attachment_image_url(), так как мне известен ID вложения.

Jeff Wilkerson Jeff Wilkerson
29 июл. 2017 г. 03:25:03