wp_get_attachment_image_sizes()
Получает значения размеров указанной картинки-вложения для атрибута sizes.
Используется в связке с функцией: wp_get_attachment_image_srcset()
О HTML атрибуте sizes
sizes
содержит список элементов (через запятую), где каждый элемент описывает размер изображения по отношению к ширине экрана (области просмотра).
Использование sizes дает браузеру дополнительную информацию, чтобы правильно выбрать подходящую картинку из srcset и начать её загрузку, как только он увидит тег <img>, не дожидаясь, парсинга css стилей.
Синтаксис:
<img srcset="small.jpg 300w, medium.jpg 600w, large.jpg 900w" sizes="(max-width: 300px) 100vw, (max-width: 600px) 50vw, (max-width: 900px) 33vw, 900px" src="image.jpg" />
Подробнее про scrset и sizes.
Хуков нет.
Возвращает
Строку|false
. Значение размеров, предназначенное для использования в атрибуте 'sizes'. Например: (max-width: 709px) 85vw, (max-width: 909px) 67vw
.
Использование
wp_get_attachment_image_sizes( $attachment_id, $size, $image_meta );
- $attachment_id(число) (обязательный)
- ID картинки вложения значение атрибута
sizes
для которого нужно получить.. - $size(массив/строка)
Название размера картинки.
Может принимать любой зарегистрированный размер или массив: array(100,150), где 100 - ширина, а 150 высота в пикселях.Значение передается в функцию wp_get_attachment_image_src() еще описание смотрите там.
По умолчанию: 'medium'- $image_meta(массив)
Метаданные картинки, в формате который возвращается функцией: wp_get_attachment_metadata().
Или можно получить метаданные вложения так:
get_post_meta( $attachment_id, '_wp_attachment_metadata', true );
По умолчанию: null
Примеры
#1 Просто получим размеры картинки для sizes атрибута
echo wp_get_attachment_image_sizes( 10, 'full' ); // выведет: // (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px
#2 Использование в IMG теге
<img src="<?php echo wp_get_attachment_image_url( $attachment_id, 'full' ) ?>" srcset="<?php echo wp_get_attachment_image_srcset( $attachment_id, 'full' ) ?>" sizes="<?php echo wp_get_attachment_image_sizes( $attachment_id, 'full' ) ?>" >
Получим:
<img src="http://example.com/wp-content/uploads/2015/12/image.png" srcset="http://example.com/wp-content/uploads/2015/12/image-240x300.png 240w, http://example.com/wp-content/uploads/2015/12/image.png 700w" sizes="(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px" >
Заметки
- Смотрите: wp_calculate_image_sizes()
Список изменений
С версии 4.4.0 | Введена. |
Код wp_get_attachment_image_sizes() wp get attachment image sizes WP 6.7.1
function wp_get_attachment_image_sizes( $attachment_id, $size = 'medium', $image_meta = null ) { $image = wp_get_attachment_image_src( $attachment_id, $size ); if ( ! $image ) { return false; } if ( ! is_array( $image_meta ) ) { $image_meta = wp_get_attachment_metadata( $attachment_id ); } $image_src = $image[0]; $size_array = array( absint( $image[1] ), absint( $image[2] ), ); return wp_calculate_image_sizes( $size_array, $image_src, $image_meta, $attachment_id ); }