阻止Wordpress生成medium_large 768像素大小的图像上传?


10

我遵循了指导原则,以防止Wordpress通过“设置”>“媒体”中的缩略图,中号和大号的大小生成大小不同的单个图像uploade,并在我的functions.php文件中删除了add_image_size和set_post_thumbnail_size的所有实例主题。但是,当我上载新图像时,Wordpress仍会生成超出原始完整尺寸的768px宽度版本。我相信它与此更新有关,但我想知道是否有任何方法可以防止它发生?我相信我已经阅读了一些人们在不经意间尝试做其他事情的线程,但是我正在寻找一种明确的方法。


您确实意识到WordPress这样做是为了减少服务器负载并加速您的网站,对吗?
肯尼思·奥德尔

Answers:


16

要删除medium_large图像尺寸,您可以尝试使用intermediate_image_sizes过滤器将其删除 :

add_filter( 'intermediate_image_sizes', function( $sizes )
{
    return array_filter( $sizes, function( $val )
    {
        return 'medium_large' !== $val; // Filter out 'medium_large'
    } );
} );

不知道您是否要删除所有中间尺寸,但是可以尝试:

add_filter( 'intermediate_image_sizes', '__return_empty_array', 999 );

其中__return_empty_array()`是一个内置的核心功能。

我们应该注意,无法通过以下方式将其删除

remove_image_size( 'medium_large' );

因为它没有添加,add_image_size()因此也不是$_wp_additional_image_sizes全局数组或wp_get_additional_image_sizes();的一部分 。


是的,也可以将medium_large_size_w选项更改为0,但是我们不能通过它来完成操作,/wp-admin/options.php因为那里的0值似乎有问题(这实际上是我在编写答案之前首先尝试的;-),因此我们需要对其进行设置通过设置API或在wp_options表格中手动进行。
birgire

7

以与wordpress核心代码相同的方式删除图像大小:

add_filter('intermediate_image_sizes', function($sizes) {
    return array_diff($sizes, ['medium_large']);
});

请记住,medium_large通常这是一个不错的尺寸srcset,只有在了解srcset工作原理的情况下(如果您已经有类似的尺寸),才可以删除它。


2

这会工作


function paulund_remove_default_image_sizes( $sizes) {
    unset( $sizes['medium_large']);
    return $sizes;
}
add_filter('intermediate_image_sizes_advanced','paulund_remove_default_image_sizes');

https://developer.wordpress.org/reference/hooks/intermediate_image_sizes_advanced/


虽然这不会创建图像本身,但是会在附件数组中创建条目,因此,假冒的条目的网址末尾带有769x。使用默认的fildomer_image_sizes确实摆脱了制作图像的麻烦,并且没有在数组中显示其条目。
lowtechsun
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.