image_constrain_size_for_editor()
最后更新于:2021-11-27 06:18:23
image_constrain_size_for_editor( int$width, int$height, string|int[]$size=’medium’, string$context=null)Scale down the default size of an image.
参数
- $width
-
(int) (Required) Width of the image in pixels.
- $height
-
(int) (Required) Height of the image in pixels.
- $size
-
(string|int[]) (Optional) Image size. Accepts any registered image size name, or an array of width and height values in pixels (in that order).
Default value: ‘medium’
- $context
-
(string) (Optional) Could be ‘display’ (like in a theme) or ‘edit’ (like inserting into an editor).
Default value: null
响应
(int[]) An array of width and height values.
- (int) The maximum width in pixels.
-
‘1’
(int) The maximum height in pixels.
源文件
文件: gc-includes/media.php
function image_constrain_size_for_editor( $width, $height, $size = 'medium', $context = null ) {
global $content_width;
$_gc_additional_image_sizes = gc_get_additional_image_sizes();
if ( ! $context ) {
$context = is_admin() ? 'edit' : 'display';
}
if ( is_array( $size ) ) {
$max_width = $size[0];
$max_height = $size[1];
} elseif ( 'thumb' === $size || 'thumbnail' === $size ) {
$max_width = (int) get_option( 'thumbnail_size_w' );
$max_height = (int) get_option( 'thumbnail_size_h' );
// Last chance thumbnail size defaults.
if ( ! $max_width && ! $max_height ) {
$max_width = 128;
$max_height = 96;
}
} elseif ( 'medium' === $size ) {
$max_width = (int) get_option( 'medium_size_w' );
$max_height = (int) get_option( 'medium_size_h' );
} elseif ( 'medium_large' === $size ) {
$max_width = (int) get_option( 'medium_large_size_w' );
$max_height = (int) get_option( 'medium_large_size_h' );
if ( (int) $content_width > 0 ) {
$max_width = min( (int) $content_width, $max_width );
}
} elseif ( 'large' === $size ) {
/*
* We're inserting a large size image into the editor. If it's a really
* big image we'll scale it down to fit reasonably within the editor
* itself, and within the theme's content width if it's known. The user
* can resize it in the editor if they wish.
*/
$max_width = (int) get_option( 'large_size_w' );
$max_height = (int) get_option( 'large_size_h' );
if ( (int) $content_width > 0 ) {
$max_width = min( (int) $content_width, $max_width );
}
} elseif ( ! empty( $_gc_additional_image_sizes ) && in_array( $size, array_keys( $_gc_additional_image_sizes ), true ) ) {
$max_width = (int) $_gc_additional_image_sizes[ $size ]['width'];
$max_height = (int) $_gc_additional_image_sizes[ $size ]['height'];
// Only in admin. Assume that theme authors know what they're doing.
if ( (int) $content_width > 0 && 'edit' === $context ) {
$max_width = min( (int) $content_width, $max_width );
}
} else { // $size === 'full' has no constraint.
$max_width = $width;
$max_height = $height;
}
/**
* Filters the maximum image size dimensions for the editor.
*
* @since 2.5.0
*
* @param int[] $max_image_size {
* An array of width and height values.
*
* @type int $0 The maximum width in pixels.
* @type int $1 The maximum height in pixels.
* }
* @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 $context The context the image is being resized for.
* Possible values are 'display' (like in a theme)
* or 'edit' (like inserting into an editor).
*/
list( $max_width, $max_height ) = apply_filters( 'editor_max_image_size', array( $max_width, $max_height ), $size, $context );
return gc_constrain_dimensions( $width, $height, $max_width, $max_height );
}