# wp_calculate_image_sizes()

URL: https://chugunov.pro/api-wordpress/functions/wp_calculate_image_sizes/
Проверено на WordPress 6.9, обновлено 06.08.2026.
Источник: независимый русскоязычный справочник chugunov.pro. Не является официальной документацией WordPress.

Тип: функция.
Появился в версии: 4.4.0.

## Сигнатура

```php
wp_calculate_image_sizes( string|int[] $size, string|null $image_src = null, array|null $image_meta = null, int $attachment_id ): string|false
```

## Описание

Создаёт значение атрибута 'sizes' для изображения.

## Параметры

- `$size` `string|int[]` — обязательный. Размер изображения. Принимает имя любого зарегистрированного размера изображения или массив значений ширины и высоты в пикселях (именно в этом порядке).
- `$image_src` `string|null` — необязательный, по умолчанию `null`. URL файла изображения.
- `$image_meta` `array|null` — необязательный, по умолчанию `null`. Метаданные изображения в том виде, в каком их возвращает 'wp_get_attachment_metadata() '.
- `$attachment_id` `int` — необязательный. ID вложения-изображения. При использовании имени размера изображения в качестве аргумента для $size требуется либо $image_meta, либо $attachment_id. Значение по умолчанию — 0.

## Возвращаемое значение

`string|false` — 'sizes'

## Исходный код

Файл: `wp-includes/media.php:1595`

```php
function wp_calculate_image_sizes( $size, $image_src = null, $image_meta = null, $attachment_id = 0 ) {
	$width = 0;

	if ( is_array( $size ) ) {
		$width = absint( $size[0] );
	} elseif ( is_string( $size ) ) {
		if ( ! $image_meta && $attachment_id ) {
			$image_meta = wp_get_attachment_metadata( $attachment_id );
		}

		if ( is_array( $image_meta ) ) {
			$size_array = _wp_get_image_size_from_meta( $size, $image_meta );
			if ( $size_array ) {
				$width = absint( $size_array[0] );
			}
		}
	}

	if ( ! $width ) {
		return false;
	}

	// Setup the default 'sizes' attribute.
	$sizes = sprintf( '(max-width: %1$dpx) 100vw, %1$dpx', $width );

	/**
	 * Filters the output of wp_calculate_image_sizes().
	 *
	 * @since 4.4.0
	 *
	 * @param string       $sizes         A source size value for use in a 'sizes' attribute.
	 * @param string|int[] $size          Requested image size. Can be any registered image size name, or
	 *                                    an array of width and height values in pixels (in that order).
	 * @param string|null  $image_src     The URL to the image file or null.
	 * @param array|null   $image_meta    The image meta data as returned by wp_get_attachment_metadata() or null.
	 * @param int          $attachment_id Image attachment ID of the original image or 0.
	 */
	return apply_filters( 'wp_calculate_image_sizes', $sizes, $size, $image_src, $image_meta, $attachment_id );
}
```

## История изменений

- 4.4.0 — Introduced.

## Связанные

Использует: [`_wp_get_image_size_from_meta`](https://chugunov.pro/api-wordpress/functions/_wp_get_image_size_from_meta/), [`wp_get_attachment_metadata`](https://chugunov.pro/api-wordpress/functions/wp_get_attachment_metadata/), [`absint`](https://chugunov.pro/api-wordpress/functions/absint/), [`apply_filters`](https://chugunov.pro/api-wordpress/functions/apply_filters/).
Используется в: [`get_header_image_tag`](https://chugunov.pro/api-wordpress/functions/get_header_image_tag/), [`wp_image_add_srcset_and_sizes`](https://chugunov.pro/api-wordpress/functions/wp_image_add_srcset_and_sizes/), [`wp_get_attachment_image_sizes`](https://chugunov.pro/api-wordpress/functions/wp_get_attachment_image_sizes/), [`wp_get_attachment_image`](https://chugunov.pro/api-wordpress/functions/wp_get_attachment_image/).

Оригинал в официальной документации: https://developer.wordpress.org/reference/functions/wp_calculate_image_sizes/
