получить url изображения среднего размера из медиа-библиотеки
Привет, я использую код для создания слайдшоу с функциональностью lytebox - следующий код используется в цикле для последовательного получения каждого изображения, прикрепленного к записи.
Похоже, что он получает только большое изображение, хотя я установил значение medium - есть идеи, как сделать так, чтобы wp_get_attachment_url($attachment->ID, 'medium', false, false) получал изображения среднего размера?
спасибо
<?php
$argsThumb = array(
'order' => 'DESC',
'post_type' => 'attachment',
'post_parent' => $post->ID,
'post_mime_type' => 'image',
'post_status' => null
);
$attachments = get_posts($argsThumb);
if ($attachments) {
foreach ($attachments as $attachment) {
echo '<div class="images"><a class="lytebox" href="' .wp_get_attachment_url($attachment->ID, 'medium', false, false). '"><img src="'.wp_get_attachment_url($attachment->ID, 'medium', false, false).'" /><div class="caption">'.apply_filters('the_content', $attachment->post_content).'</div></a></div>';
}
}

wp_get_attachment_url()
возвращает только URL оригинального файла вложения, эта функция принимает только ID вложения в качестве параметра.
Вместо неё используйте wp_get_attachment_image_src()
или wp_get_attachment_image()
.

ни один из этих вариантов, кажется, не возвращает URL, верно?

wp_get_attachment_src()
возвращает массив, и первый параметр — это URL изображения. Подробности см. на указанной странице Codex.

Доступ к элементам массива через вызов функции — это функция PHP 5.4+. Не то чтобы это было проблемой. Просто чтобы все знали.

Обновление для тех, кто нашел это спустя столько лет. Функция, которая вам нужна, называется wp_get_attachment_image_url()
. Документация здесь.
Всё, что вам нужно сделать — передать ID вложения и размер, и она вернет либо строку с URL изображения, либо false.
