wp_get_attachment_image_srcset() WP 4.4.0

Отримує значення атрибута 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 читайте тут

1 раз – 0.001658 сек
(дуже повільно) | 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

Приклади

0

#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
0

#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">
*/
0

#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' ) ?>"
>

нотатки

список змін

З версії 4.4.0Введено.

Код 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 );
}

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *