wp_get_attachment_image_src всегда возвращает изображение в полном размере

1 июл. 2015 г., 04:50:39
Просмотры: 42.8K
Голосов: 10

https://codex.wordpress.org/Function_Reference/wp_get_attachment_image_src#Parameters предполагает, что wp_get_attachment_image_src( $thumb_id, array(100, 100) )[0] должен возвращать миниатюру размером 100x100, но вместо этого всегда возвращается изображение в полном размере.

Буду признателен за любую помощь.

0
Все ответы на вопрос 3
2

Думаю, этот код вам поможет:

// Получаем URL изображения записи в полном размере
$src = wp_get_attachment_image_src( get_post_thumbnail_id($post->ID), 'full', false, '' );
// Выводим HTML-тег изображения с полученным URL
echo '<img src="'.$src[0].'">';
9 апр. 2016 г. 14:20:23
Комментарии

Какая ошибка выводится

Vidhya Thirugnanam Vidhya Thirugnanam
9 апр. 2016 г. 15:50:13

echo '<img src="'.$src[0].'">'; Извините, попробуйте это

Vidhya Thirugnanam Vidhya Thirugnanam
9 апр. 2016 г. 15:51:28
2

Вам необходимо иметь предопределенные размеры изображений. В WordPress есть 3 стандартных размера: миниатюра 100x100, средний 300x300 и большой 800x800, а у меня есть дополнительный размер под названием img-polaroid 700x320, определенный в functions.ini.

Таким образом, код для получения изображений: $image_id=get_post_thumbnail_id(); $image_url = wp_get_attachment_image_src($image_id,'img-polaroid'); $image_url=$image_url[0];

'img-polaroid' - это '$size', который возвращает изображение размером 700x320, а способ вывода изображения: img src="php echo $image_url" class="img-polaroid" style="margin:5px 0px 15px;"

Где class="img-polaroid" - это реальный размер для вывода, например 100x100 или 200x100, со стилем поляроидного фото, определенным в CSS; или вы можете использовать внутри HTML-кода img heigh=100 wight=100. При обоих методах изображение будет четким и хорошего качества. Для моих целей img-polaroid имеет размер 320x200 и также определен как адаптивный размер.

Если вы получаете изображение $image_url = wp_get_attachment_image_src($image_id,'thumbnail'); и пытаетесь вывести его в большем размере, изображение будет размытым. ***

Поэтому старайтесь получать размер изображения, максимально близкий к тому, который вам нужно вывести, чтобы не перегружать вашу страницу


1 июл. 2015 г. 11:04:51
Комментарии

Даже когда я пытаюсь получить изображение по его имени, все равно возвращается изображение в полном размере. Например, echo wp_get_attachment_image_src( $thumb, 'medium' )[0]; все равно возвращает изображение в полном размере.

corysimmons corysimmons
1 июл. 2015 г. 18:14:06

@corysimmons img src=(phpcode &image_url) выведет изображение, medium, full, large — это только размеры разрешения, попробуйте настроить с помощью высоты и ширины в CSS стилях или html коде. Если изображение все равно отображается в полном размере, вам нужно переопределить стиль img с помощью другого стиля, используя комментарий !important, например .thumb img{widht:100px !important; height:auto}

Fernando Baltazar Fernando Baltazar
1 июл. 2015 г. 18:41:10
1

... заставляет меня думать, что wp_get_attachment_image_src( $thumb_id, array(100, 100) )[0] вернет миниатюру размером 100x100...

На самом деле происходит не совсем это. Большая часть работы выполняется функцией image_downsize(), как видно в начале функции wp_get_attachment_image_src():

692         // получаем миниатюру или промежуточное изображение, если оно есть
693         if ( $image = image_downsize($attachment_id, $size) )
694                 return $image;

Если посмотреть заметки к этой функции, можно увидеть:

134  * URL может быть оригинальным изображением или его измененной версией. Эта
135  * функция не создает новую измененную копию, она просто возвращает уже
136  * существующую измененную версию, если таковая имеется.

Что вы получаете (насколько я могу судить) - это ближайший размер к запрошенному с массивом, содержащим запрошенные размеры изображения или фактические размеры изображения, если запрошенный размер больше самого большого изображения. Ожидается, что остальное вы сделаете с помощью HTML и CSS.

1 июл. 2015 г. 05:31:31
Комментарии

Итак, как получить измененное изображение?

Victor Marchuk Victor Marchuk
13 окт. 2016 г. 08:27:31