wp_get_registered_image_subsizes()WP 5.3.0

Получает данные (width, height, crop) зарегистрированных в текущий момент размеров изображений.

Используйте get_intermediate_image_sizes(), когда нужно получить только имена промежуточных размеров, а не все данные.

Хуков нет.

Возвращает

Массив[]. Ассоциативный массив массивов с информацией о субразмерах изображений:

Array
	[thumbnail] => Array
			[width] => 150
			[height] => 150
			[crop] => 1

	[medium] => Array
			[width] => 300
			[height] => 300
			[crop] =>
	...

Использование

wp_get_registered_image_subsizes();

Примеры

0

#1 Получение всех размеров миниатюр

$sizes = wp_get_registered_image_subsizes();    

foreach ( $sizes as $key => $val ) {    

	echo "Название: {$key};" . PHP_EOL;  
	echo "Ширина: {$val['width']}" . PHP_EOL;    
	echo "Высота: {$val['height']}" . PHP_EOL;   

	if ( is_array($val['crop']) ) {  
		echo "Обрезка: {$val['crop'][0]}x{$val['crop'][1]}." . PHP_EOL;
	} else {     
		echo "Обрезка: {$val['crop']}." . PHP_EOL;   
	}   

	echo PHP_EOL;    
}    

Получим:

Название: thumbnail;
Ширина: 150
Высота: 150
Обрезка: 1.

Название: medium;
Ширина: 300
Высота: 300
Обрезка: .

Название: medium_large;
Ширина: 768
Высота: 0
Обрезка: .

Название: large;
Ширина: 1024
Высота: 1024
Обрезка: .
0

#2 Демо: что выводит функция

$sizes = wp_get_registered_image_subsizes(); 

print_r( $sizes );

/*
Array
(
	[thumbnail] => Array
		(
			[width] => 150
			[height] => 150
			[crop] => 1
		)

	[medium] => Array
		(
			[width] => 300
			[height] => 300
			[crop] => 
		)

	[medium_large] => Array
		(
			[width] => 768
			[height] => 0
			[crop] => 
		)

	[large] => Array
		(
			[width] => 1024
			[height] => 1024
			[crop] => 
		)

	[1536x1536] => Array
		(
			[width] => 1536
			[height] => 1536
			[crop] => 
		)

	[2048x2048] => Array
		(
			[width] => 2048
			[height] => 2048
			[crop] => 
		)

	[post-thumbnail] => Array
		(
			[width] => 1568
			[height] => 9999
			[crop] => 
		)

)
*/

Список изменений

С версии 5.3.0 Введена.

Код wp_get_registered_image_subsizes() WP 6.4.3

function wp_get_registered_image_subsizes() {
	$additional_sizes = wp_get_additional_image_sizes();
	$all_sizes        = array();

	foreach ( get_intermediate_image_sizes() as $size_name ) {
		$size_data = array(
			'width'  => 0,
			'height' => 0,
			'crop'   => false,
		);

		if ( isset( $additional_sizes[ $size_name ]['width'] ) ) {
			// For sizes added by plugins and themes.
			$size_data['width'] = (int) $additional_sizes[ $size_name ]['width'];
		} else {
			// For default sizes set in options.
			$size_data['width'] = (int) get_option( "{$size_name}_size_w" );
		}

		if ( isset( $additional_sizes[ $size_name ]['height'] ) ) {
			$size_data['height'] = (int) $additional_sizes[ $size_name ]['height'];
		} else {
			$size_data['height'] = (int) get_option( "{$size_name}_size_h" );
		}

		if ( empty( $size_data['width'] ) && empty( $size_data['height'] ) ) {
			// This size isn't set.
			continue;
		}

		if ( isset( $additional_sizes[ $size_name ]['crop'] ) ) {
			$size_data['crop'] = $additional_sizes[ $size_name ]['crop'];
		} else {
			$size_data['crop'] = get_option( "{$size_name}_crop" );
		}

		if ( ! is_array( $size_data['crop'] ) || empty( $size_data['crop'] ) ) {
			$size_data['crop'] = (bool) $size_data['crop'];
		}

		$all_sizes[ $size_name ] = $size_data;
	}

	return $all_sizes;
}