如果我用Wordpress上传图片,它通常会产生比我在设置->媒体(小150,中300,大1024)中所显示的图像大小更多的图像。
例如,如果我上传一个4K图像,它会产生多达7个副本+原始副本(150,300,768,1024,1536,20148,缩放,原件)。
我使用基于下划线的子主题,但似乎没有文件函数告诉Wordpress生成其他副本。
它们是从哪里来的?
发布于 2020-07-10 09:43:32
WordPress生成超过3个缩略图或图像子大小,因为WordPress中实际上有3个以上的标准/核心图像大小。此外,主题和插件还可以注册自定义图像大小。:)
medium_large**),但只有默认情况下可以在wp-admin→设置→媒体上配置的前三种。1536x1536 和 2048x2048,它们在内部/通过使用add_image_size()的_wp_add_additional_image_sizes()自动添加。-scaled ):可用于高分辨率和非PNG图像,其中WordPress复制原始(大)图像,并将其缩小到默认为2560像素的阈值大小。例如,如果我上传一个4K图像,它会产生多达7个副本+原始副本(150,300,768,1024,1536,20148,缩放,原件)。
因此,在这种情况下(但请注意,我相信您用"20148“做了一个错误,应该是2048年),原始图像的7份副本很可能是:
1536x1536)2048x2048)如果要确定,可以使用get_intermediate_image_sizes()检查站点上的所有注册图像大小。您还可以使用wp_get_additional_image_sizes()获得附加/自定义大小(包括WordPress添加的1536x1536和2048x2048 )。
实际上,您可以使用wp_get_attachment_metadata() (参见最下面的示例)检查图像附件可用的大小。
主题和插件可以使用相同的add_image_size()注册自定义图像大小,因此如果您注意到比核心大小更大(请参见上面),那么额外的大小可能是由站点上的活动主题或插件添加的。例如。
set_post_thumbnail_size()设置一个自定义特征图像大小,您可以在functions.php中找到代码。add_image_size()注册产品缩略图(woocommerce_thumbnail)的自定义图像大小,您可以在includes/class-woocommerce.php中找到代码。因此,对于这样的自定义图像大小,您可以搜索主题或插件文件中的add_image_size或set_post_thumbnail_size。
中禁用某些图像大小
add_image_size()添加的6个标准/核心尺寸和所有其他大小,例如medium_large和2048x2048,您可以使用intermediate_image_sizes_advanced钩子:add_filter(‘mediate_image_ size _advanced’)、函数( $sizes ){ //禁用2048x2048大小。unset( $sizes );//或可能只允许特定的大小: /* $allowed =;foreach ( $sizes as $name => $size ){ if (!in_array( $name,$allowed ){ unset( $sizes );} */返回$sizes;} );big_image_size_threshold钩子://禁用阈值。add_filter(“__return_false”);/或可能增加它: /* add_filter(‘/*_image_size_阈值’,函数() {返回3032;} );*/不管是哪种方式,确保你知道自己在做什么,并正确地去做。
wp_get_attachment_metadata()(我在以前的修订中提到了这一点,所以我想我应该把它包括在这里。)
对于具有核心缩放图像的图像附件,如下面所示,主width、height和file项将指向缩放图像,而不是原始图像。但是,原始文件的名称在original_image中可用。
// Query an attachment with a core Scaled image.
var_dump( wp_get_attachment_metadata( 123 ) );
/* Sample output:
array(6) {
["width"]=>
int(2560)
["height"]=>
int(1440)
["file"]=>
string(25) "2020/07/hi-res-scaled.jpg"
["sizes"]=>
array(7) {
["medium"]=>
array(4) {
["file"]=>
string(18) "hi-res-300x169.jpg"
["width"]=>
int(300)
["height"]=>
int(169)
["mime-type"]=>
string(10) "image/jpeg"
}
["large"]=>
...
["thumbnail"]=>
...
["medium_large"]=>
...
["1536x1536"]=>
...
["2048x2048"]=>
...
}
["image_meta"]=>
array(12) {
...
}
["original_image"]=>
string(10) "hi-res.jpg"
}
*/
// Query an attachment without a core Scaled image.
var_dump( wp_get_attachment_metadata( 456 ) );
/* Sample output: (no original_image)
array(5) {
["width"]=>
int(1024)
["height"]=>
int(768)
["file"]=>
string(21) "2020/07/foo-image.jpg"
["sizes"]=>
array(3) {
["medium"]=>
array(4) {
["file"]=>
string(21) "foo-image-300x225.jpg"
["width"]=>
int(300)
["height"]=>
int(225)
["mime-type"]=>
string(10) "image/jpeg"
}
["thumbnail"]=>
...
["medium_large"]=>
...
}
["image_meta"]=>
array(12) {
...
}
}
*/https://wordpress.stackexchange.com/questions/370768
复制相似问题