wp_calculate_image_sizes() WordPress Function

The wp_calculate_image_sizes() function is used to calculate the image sizes for an image. This function will return an array of image sizes, which can be used to determine the size of an image.

wp_calculate_image_sizes( string|int[] $size, string $image_src = null, array $image_meta = null, int $attachment_id ) #

Creates a ‘sizes’ attribute value for an image.


Parameters

$size

(string|int[])(Required)Image size. Accepts any registered image size name, or an array of width and height values in pixels (in that order).

$image_src

(string)(Optional) The URL to the image file.

Default value: null

$image_meta

(array)(Optional) The image meta data as returned by 'wp_get_attachment_metadata()'.

Default value: null

$attachment_id

(int)(Optional) Image attachment ID. Either $image_meta or $attachment_id is needed when using the image size name as argument for $size. Default 0.


Top ↑

Return

(string|false) A valid source size value for use in a 'sizes' attribute or false.


Top ↑

Source

File: wp-includes/media.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 );
}


Top ↑

Changelog

Changelog
VersionDescription
4.4.0Introduced.

The content displayed on this page has been created in part by processing WordPress source code files which are made available under the GPLv2 (or a later version) license by theĀ Free Software Foundation. In addition to this, the content includes user-written examples and information. All material is subject to review and curation by the WPPaste.com community.

Show More
Show More