WordPress Version: 5.9
/**
* Returns a normalized list of all currently registered image sub-sizes.
*
* @since 5.3.0
* @uses wp_get_additional_image_sizes()
* @uses get_intermediate_image_sizes()
*
* @return array[] Associative array of arrays of image sub-size information,
* keyed by image size name.
*/
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;
}