WordPress Version: 6.1
/**
* Retrieves HTML for the size radio buttons with the specified one checked.
*
* @since 2.7.0
*
* @param WP_Post $post
* @param bool|string $check
* @return array
*/
function image_size_input_fields($post, $check = '')
{
/**
* Filters the names and labels of the default image sizes.
*
* @since 3.3.0
*
* @param string[] $size_names Array of image size labels keyed by their name. Default values
* include 'Thumbnail', 'Medium', 'Large', and 'Full Size'.
*/
$size_names = apply_filters('image_size_names_choose', array('thumbnail' => __('Thumbnail'), 'medium' => __('Medium'), 'large' => __('Large'), 'full' => __('Full Size')));
if (empty($check)) {
$check = get_user_setting('imgsize', 'medium');
}
$output = array();
foreach ($size_names as $size => $label) {
$downsize = image_downsize($post->ID, $size);
$checked = '';
// Is this size selectable?
$enabled = $downsize[3] || 'full' === $size;
$css_id = "image-size-{$size}-{$post->ID}";
// If this size is the default but that's not available, don't select it.
if ($size == $check) {
if ($enabled) {
$checked = " checked='checked'";
} else {
$check = '';
}
} elseif (!$check && $enabled && 'thumbnail' !== $size) {
/*
* If $check is not enabled, default to the first available size
* that's bigger than a thumbnail.
*/
$check = $size;
$checked = " checked='checked'";
}
$html = "<div class='image-size-item'><input type='radio' " . disabled($enabled, false, false) . "name='attachments[{$post->ID}][image-size]' id='{$css_id}' value='{$size}'{$checked} />";
$html .= "<label for='{$css_id}'>{$label}</label>";
// Only show the dimensions if that choice is available.
if ($enabled) {
$html .= " <label for='{$css_id}' class='help'>" . sprintf('(%d × %d)', $downsize[1], $downsize[2]) . '</label>';
}
$html .= '</div>';
$output[] = $html;
}
return array('label' => __('Size'), 'input' => 'html', 'html' => implode("\n", $output));
}