image_get_intermediate_size()
Получает массив данных картинки-вложения указанного размера (thumbnail, medium ...), если она существует. Возвращает false если картинки нет.
В параметре $size указывается зарегистрированный с помощью add_image_size() размер или уже существующие базовые размеры WordPress: thumb
, thumbnail
, medium
, large
, post-thumbnail
. Также, $size может быть массивом: array(120, 50) - ширина и высота. Если этот размер совпадает с метаданными размера существующей картинки, то она будет использована. Если точного совпадения с размерами нет, то будет получена наиболее подходящая, большая про размеру картинка. Если большей по размеру картинки не существует, функция вернет false.
В массиве данных УРЛ картинки будет передан, если в параметр $size указана строка.
Если в $size вы используете массив, то очень желательно задуматься о том, чтобы зарегистрировать нужный размер с помощью add_image_size(), для того чтобы выводилась уменьшенная копия картинки. Это гораздо эффективнее, чем находить ближайший больший размер и затем уменьшать его до нужного размера в браузере.
Хуки из функции
Возвращает
Массив|false
. false, если размера нет и массив данных картинки, если размер есть:
Если в $size передана строка и найден точный подходящий размер: Array ( [file] => setting2-120x14.png [width] => 120 [height] => 14 [mime-type] => image/png [path] => 2014/07/setting2-120x14.png [url] => http://wp-kama.ru/wp-content/uploads/2014/07/setting2-120x14.png ) Когда не найден точный размер, но найдена ближайшая картинка большего размера: Array ( [file] => setting2-120x14.png [width] => 90 [height] => 10 )
Использование
$image = image_get_intermediate_size( $post_id, $size );
- $post_id(число) (обязательный)
- ID вложения-картинки
- $size(строка/массив)
- Размер картинки, может быть строкой (зарегистрированный размер) или массивом ширина и высота: array(120,50).
По умолчанию: 'thumbnail'
Примеры
#1 Пример использования
Получим данные картинки вложения 4831, среднего (medium) размера:
$intermediate = image_get_intermediate_size( 4831, 'medium' ); print_r( $intermediate ); /* Вернет: Array ( [file] => setting2-120x14.png [width] => 120 [height] => 14 [mime-type] => image/png [path] => 2014/07/setting2-120x14.png [url] => http://wp-kama.ru/wp-content/uploads/2014/07/setting2-120x14.png ) */
#2 Укажем массив в параметр $size
Получим данные картинки вложения 4831, указанного размера (т.е. размер может быть не зарегистрирован):
$intermediate = image_get_intermediate_size( 4831, array(90,90) ); /* вернет: Array ( [file] => setting2-120x14.png [width] => 90 [height] => 10 ) */
#3 Выведем картинку нужного размера, если она есть
В этом примере, мы выводим картинку если она есть и надпись "картинки нет", если её нет. В отличии от image_downsize(), которая возвращает УРЛ в любом случае:
function get_image_link_if_exists( $size ){ global $post; // получим id миниатюры поста $thumbnail_id = get_post_thumbnail_id( $post->ID ); // выводим картинку если она есть $image = image_get_intermediate_size( $thumbnail_id, $size ); if( $image ) echo '<img src="'. $image['url'] .'" alt="" width="'. $image['width'] .'" height="'. $image['height'] .'" />'; else echo 'Картинки нет'; } get_image_link_if_exists('my_size');
Список изменений
С версии 2.5.0 | Введена. |