Запретить Wordpress генерировать средний размер 768 пикселей для загрузки изображений?

10

Я следовал рекомендациям, чтобы WordPress не генерировал много разных размеров для отдельных загрузок изображений с помощью размеров для миниатюр, средних и больших до 0 в меню «Настройки»> «Мультимедиа» и избавился от всех экземпляров add_image_size и set_post_thumbnail_size в файле functions.php моего тема. Тем не менее, когда я загружаю новые изображения, WordPress по-прежнему генерирует версию шириной 768 пикселей сверх исходного полного размера. Я верю, что это как-то связано с этим обновлением, но мне интересно, есть ли способ предотвратить это? Я полагаю, что я читал некоторые темы, в которых люди случайно достигли этого, пытаясь сделать что-то еще, но я ищу четкий метод.

user3597545
источник
Вы понимаете, что WordPress делает это, чтобы уменьшить нагрузку на сервер и ускорить ваш сайт, верно?
Кеннет Одл

Ответы:

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();

birgire
источник
да, также можно изменить medium_large_size_wопцию на 0, но мы не можем сделать это через, /wp-admin/options.phpпотому что там, похоже, есть проблема со значением 0 (это на самом деле то, что я пытался сначала, прежде чем писать ответ ;-), поэтому нам нужно установить его через настройки API или вручную в wp_optionsтаблице.
17
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/

SIL2
источник
Хотя это не создавало само изображение, оно, тем не менее, создавало запись в массиве вложений, поэтому поддельная запись с 769x в конце URL-адреса. При использовании стандартного фильтра middle_image_sizes удалось избавиться от создания изображения и не показывать запись для него в массиве.
lowtechsun