wp_get_attachment_image_srcset()
Отримує значення атрибута srcset html тега <img> . Значення міститиме імена всіх наявних розмірів зазначеної картинки (вкладення) у вигляді: image.jpg 1x, image-sm.jpg 640w"
.
Функція отримує по ID картинки-вкладення всі наявні розміри цієї картинки і створює з даних рядок для атрибута srcset .
Функція нічого не поверне, якщо:
вказана картинка це анімована GIF картинка. І тут проміжні розміри отримати неможливо.
- вдалося отримати лише дані одного проміжного розміру. Для srcset потрібно щонайменше два.
При пошуку проміжних розмірів функція пропускає зображення :
якщо ширина проміжної картинки більша за 1600px. Це значення можна змінити через фільтр
max_srcset_image_width
які були редаговані (оригінали).
- пропорції яких від основної. Тобто. height/width не дорівнює height/width проміжної картинки. При порівнянні допускається похибка 0.002.
Ця функція використовується у зв’язці з wp_get_attachment_image_sizes()
Про атрибут scrset
Атрибут scrset – це заміна атрибута src . У scrset вказуються декілька URL картинки та умова для кожного URL, при якому він повинен використовуватися. Цей атрибут важливіший за src і src буде використаний тільки якщо браузер не підтримує scrset .
Наприклад такий рядок:
<img src="image-small.jpg" srcset="image-small.jpg 1x, image-large.jpg 2x, image-cropped-sm.jpg 640w">
Обробиться так:
- Якщо немає підтримки srcset – буде використано зображення image-small.jpg
- Якщо стандартна роздільна здатність екрану – image-small.jpg
- Якщо це екран із підвищеною пікселізацією (ретина) – image-large.jpg
- Якщо максимальна ширина екрана пристрою менша або дорівнює 640px – image-cropped-sm.jpg
Детальніше про scrset та sizes читайте тут
(дуже повільно) | 50000 разів – 35.26 сек
(дуже повільно)
Хуків немає.
Повертає
Строку|false
. Значення атрибута srcset або false.
Використання
wp_get_attachment_image_srcset( $attachment_id, $size, $image_meta );
-
$attachment_id
(число) (обов’язковий) - ID зображення вкладення, значення для якої потрібно отримати.
-
$size
(масив/рядок) Розмір картинки для якої буде побудовано значення атрибуту srcset .
Може приймати будь-який зареєстрований розмір або масив: 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 Отримаємо значення srcset для повного розміру зображення
echo wp_get_attachment_image_srcset(6587, 'full'); // виведе: // http://wp-kama.ru/wp-content/uploads/2015/12/WP-Recall-0-120x69.jpg 120w, http://wp-kama.ru/wp-content/uploads/2015 /12/WP-Recall-0.jpg 975w
#2 Додамо атрибут srcset для зображення
$attachment_id = 6587; printf( '<img src="%s" srcset="%s">', wp_get_attachment_image_url( $attachment_id ), wp_get_attachment_image_srcset( $attachment_id, 'full' ) ); /* виведе: <img src="/wp-content/uploads/2015/12/WP-Recall-0-80x80.jpg" srcset="http://wp-kama.ru/wp-content/uploads/2015/12/WP-Recall-0-120x69.jpg 120w, http://wp-kama.ru/wp-content/uploads/ 2015/12/WP-Recall-0.jpg 975w"> */
#3 Додавання необхідних атрибутів до IMG
<img src="<?php echo wp_get_attachment_image_url( $attachment_id, 'large' ) ?>" srcset="<?php echo wp_get_attachment_image_srcset( $attachment_id, 'large' ) ?>" sizes="<?php echo wp_get_attachment_image_sizes( $attachment_id, 'large' ) ?>" >
нотатки
- Дивіться: wp_calculate_image_srcset()
список змін
З версії 4.4.0 | Введено. |
Код wp_get_attachment_image_srcset() wp get attachment image srcset WP 6.0.2
function wp_get_attachment_image_srcset( $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_srcset( $size_array, $image_src, $image_meta, $attachment_id ); }