image_get_intermediate_size()
Получает массив данных картинки-вложения указанного размера: thumbnail, medium и т.д, если она существует.
Если в $size вы используете массив, то рекомендуется зарегистрировать необходимый размер с помощью add_image_size() - это иногда эффективнее, чем находить ближайший больший размер и затем уменьшать его до нужного размера в браузере.
В результате URL картинки будет передан, только если в параметр $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(строка/массив)
Размер картинки.
Тут указывается зарегистрированный размер картинки в WordPress из коробки доступны следующие размеры:
thumb thumbnail medium large post-thumbnail
Кастомыне картинки регистрируются с помощью add_image_size().
В параметр можно передать массив, например
[200, 300]- ширина и высота в пикселях. Если такой размер совпадает с одним из уже сгенерированных размеров изображения, будет использована соответствующая миниатюра. Если точного совпадения нет, вернется ближайший подходящий больший размер. Если подходящего большего размера нет, функция вернетfalse.По умолчанию: '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 | Введена. |