Как отключить создание миниатюр в WordPress?

16 мар. 2013 г., 17:06:33
Просмотры: 25.8K
Голосов: 19

Я долго искал в интернете способ отключить создание WordPress множественных миниатюр.

В большинстве руководств предлагается установить размер всех изображений на 0 в разделе медиафайлов. Я сделал это, но при проверке папки загрузок всё равно создаются множественные изображения.

Я не могу найти решение этой проблемы. Причина, по которой я хочу это сделать - сэкономить место на аккаунте хостинга.

2
Комментарии

Пожалуйста, отключите все плагины и переключитесь на стандартную тему. Затем вы сможете установить все размеры изображений в 0 и предотвратить генерацию WordPress этих размеров. Если это не сработает, сообщите нам. Если сработает, значит, какой-то плагин или тема вмешиваются в процесс.

kaiser kaiser
17 мар. 2013 г. 13:33:00

Вы можете использовать плагин Stop Generating Unnecessary Thumbnails. WordPress не генерирует миниатюры при загрузке изображений или установке изображения записи, и изображение не обрезается при загрузке в папку, где добавляется размер или количество файлов на хостинге.

ahdan ahmad ahdan ahmad
27 июл. 2021 г. 05:12:44
Все ответы на вопрос 10
0
14

Чтобы продолжить ответ Макса Юдина, вам следует использовать фильтр intermediate_image_sizes_advanced, а не image_size_names_choose. Добавьте в functions.php:

function add_image_insert_override($sizes){
    unset( $sizes['thumbnail']);
    unset( $sizes['medium']);
    unset( $sizes['large']);
    return $sizes;
}
add_filter('intermediate_image_sizes_advanced', 'add_image_insert_override' );

Другой, более простой вариант, который, как мне кажется, работает — это перейти в Настройки-->Медиафайлы и установить значения ширины и высоты для каждого поля в 0.

16 мар. 2013 г. 18:17:46
0
14

Вы также можете отфильтровать intermediate_image_sizes с пустым массивом.

add_filter( 'intermediate_image_sizes', '__return_empty_array' );
// Добавляем фильтр, который возвращает пустой массив для intermediate_image_sizes
// Это отключает создание промежуточных (thumbnail) размеров изображений
16 мар. 2013 г. 19:16:16
2

Перейдите на страницу Настройки > Медиафайлы в админ-панели WordPress. В разделе Размеры изображений измените все значения на 0.

Настройки медиафайлов

Сохраните изменения. Это предотвратит автоматическое создание WordPress миниатюр, средних и больших версий для каждого загружаемого изображения.

Вы также заметите, что при вставке изображения выпадающий список "Размер" больше не отображается.

20 мар. 2013 г. 05:13:06
Комментарии

Это не работает!

Ali Hashemi Ali Hashemi
11 сент. 2014 г. 16:07:14

@Pazis Это работало в более старой версии WordPress, но, похоже, не работает в 4.0

shea shea
12 сент. 2014 г. 09:15:18
2

Если я правильно помню, вам нужно сбросить все стандартные размеры через unset и добавить новый размер Size:

    <?php
function mxdCustomImageSizes($sizes) {
    unset( $sizes['thumbnail']);
    unset( $sizes['medium']);
    unset( $sizes['large']);
    unset( $sizes['full'] );

    $myimgsizes = array(
        'full-size' => __( 'Полный размер' )
    );
    if( !empty($sizes) )
        return array_merge($sizes, $myimgsizes);
    else
        return $myimgsizes;
}
add_filter('intermediate_image_sizes_advanced', 'mxdCustomImageSizes');

Затем добавьте размер full-size с параметрами 99999x99999, что практически означает полный размер без ограничений.

add_image_size( 'full-size', 99999, 99999, false );

Поправьте меня, если что-то не так.

P. S. Вам понадобится плагин для пересохранения всех изображений согласно новым настройкам. Я могу порекомендовать плагин Regenerate Thumbnails.

P. P. S. Когда есть только один вариант выбора, вам всё равно придётся выбирать из одного :). В новом медиа-окне (версии 3.5.1) нет прямого способа сделать один размер выбранным по умолчанию.

16 мар. 2013 г. 17:28:43
Комментарии

Привет, Макс, я думаю, это неправильный фильтр, image_size_names_choose используется для вывода при выборе изображений в медиабоксе.

Wyck Wyck
16 мар. 2013 г. 18:15:36

Да, ты прав. Спасибо за информацию, теперь мне нужно пересмотреть некоторые вещи, которые я уже сделал.

Max Yudin Max Yudin
17 мар. 2013 г. 21:03:03
0

Для последней версии WordPress с активированным плагином WooCommerce используйте этот код:

function add_image_insert_override($sizes){
    // Удаляем ненужные размеры изображений
    unset($sizes['thumbnail']);
    unset($sizes['medium']);
    unset($sizes['medium_large']);
    unset($sizes['large']);
    unset($sizes['1536x1536']);
    unset($sizes['2048x2048']);        
    unset($sizes['blog-isotope']);
    unset($sizes['product_small_thumbnail']);
    unset($sizes['shop_catalog']);
    unset($sizes['shop_single']);
    unset($sizes['shop_single_small_thumbnail']);
    unset($sizes['shop_thumbnail']);
    unset($sizes['woocommerce_thumbnail']);
    unset($sizes['woocommerce_single']);
    unset($sizes['woocommerce_gallery_thumbnail']);
    return $sizes;
}
// Добавляем фильтры
add_filter('intermediate_image_sizes_advanced', 'add_image_insert_override' );
add_filter('max_srcset_image_width', create_function('', 'return 1;'));

Но будет лучше, если вы оставите один маленький миниатюрный размер (thumbnail) и одно изображение среднего размера (medium).

P.S. Все зарегистрированные размеры можно посмотреть, установив плагин Regenerate Thumbnails. И не забывайте про размеры, генерируемые функцией add_image_size() в теме.

6 нояб. 2018 г. 10:54:53
1

Если вы хотите удалить все, просто верните пустой массив.

function remove_thumbnail_image_sizes($sizes) {
    return [];
}
add_filter('intermediate_image_sizes_advanced','remove_thumbnail_image_sizes');
29 нояб. 2021 г. 08:47:25
Комментарии

Да, именно это делает ответ Криса О, но на хуке not-advanced и с использованием встроенной функции __return_empty_array.

Rup Rup
30 нояб. 2021 г. 12:53:01
1
function remove_default_image_sizes( $sizes) {
    unset($sizes['thumbnail']); // Удаляем миниатюру
    unset($sizes['medium']);    // Удаляем средний размер
    unset($sizes['large']);     // Удаляем большой размер
    return $sizes;              // Возвращаем изменённый массив
}
add_filter('intermediate_image_sizes_advanced','remove_default_image_sizes');

Не забудьте вернуть return $sizes;, как показано в примере.

Затем добавьте новые размеры изображений следующим образом...

if(function_exists('add_image_size')){
    add_image_size('my_100x100_crop',100,100,true); // Режим обрезки
    add_image_size('my_100x100_resize',100,100);     // Режим изменения размера
}

Протестировано!

25 сент. 2013 г. 10:59:25
Комментарии

Это убирает размеры из "Вставить в запись", но WordPress всё равно генерирует миниатюры!

Ali Hashemi Ali Hashemi
11 сент. 2014 г. 16:05:30
0

Я столкнулся с проблемами при использовании фильтра intermediate_image_sizes_advanced на нескольких сайтах. Похоже, что в WP 5.3 intermediate_image_sizes работает более надежно.

Я бы рекомендовал удалять нежелательные размеры вот так:

add_filter('intermediate_image_sizes', 'remove_default_img_sizes', 10, 1);

function remove_default_img_sizes($sizes)
{
    $targets = ['medium', 'medium_large', 'thumbnail'];

    foreach ($sizes as $size_index=>$size) {
        if (in_array($size, $targets)) {
            unset($sizes[$size_index]);
        }
    }

    return $sizes;
}
18 июн. 2020 г. 22:49:40
2

Поскольку в WordPress часто установлен WooCommerce, этот код отключает перегенерацию изображений при добавлении в файл functions.php (например, в дочерней теме или через плагин для сниппетов кода, так как в противном случае он может быть перезаписан при обновлениях).

add_filter( 'woocommerce_background_image_regeneration', '__return_false' );
10 нояб. 2021 г. 16:06:44
Комментарии

Это действительно отключает регенерацию изображений, или просто означает, что это не будет происходить в фоновом режиме, но всё равно выполнится в основном процессе?

Rup Rup
10 нояб. 2021 г. 23:57:08

Отличный вопрос, я проверю, что на самом деле появляется в папках медиа на сервере, и постараюсь обновить свой ответ в случае необходимости.

K. Kilian Lindberg K. Kilian Lindberg
11 нояб. 2021 г. 10:28:17
0

В моем случае недостаточно было отключить генерацию миниатюр ни в админке, ни в коде.

Тогда я нашел отличный плагин.

ThumbPress – Остановите генерацию ненужных миниатюр (от Codexpert, Inc)

12 мар. 2024 г. 11:26:55