Как удалить ненужные размеры изображений из wp-content/uploads?

23 окт. 2014 г., 18:05:07
Просмотры: 15.9K
Голосов: 12

Мои стандартные настройки медиафайлов в блоге WordPress были 150x150, 300x300, 1024x1024 для миниатюр, средних и больших изображений соответственно. Сейчас я разрабатываю тему, которой требуются миниатюры других размеров. Для этого я изменил настройки медиафайлов на новые размеры: 72x72, 250x250, 400x400 для тех же типов изображений.

Чтобы изменить размеры уже загруженных изображений, я использовал плагин Regenerate Thumbnails, который успешно сгенерировал изображения новых размеров. Это решило основную проблему.

Основной вопрос:

Теперь возникла новая проблема - заканчивается место на хостинге. Проверив файлы, я обнаружил, что для каждого изображения есть 7 файлов, хотя используются только 4.

first-image-name.jpg
first-image-name-72x72.jpg
first-image-name-150x150.jpg
first-image-name-250x250.jpg
first-image-name-300x300.jpg
first-image-name-400x400.jpg
first-image-name-1024x1024.jpg
second-image-name.jpg
second-image-name-72x72.jpg
second-image-name-150x150.jpg
second-image-name-250x250.jpg
second-image-name-300x300.jpg
second-image-name-400x400.jpg
second-image-name-1024x1024.jpg
...............................
---------- и так далее ----------

Мне нужно удалить изображения размеров 150x150, 300x300, 1024x1024. Многие рекомендуют плагины DNUI (Delete not used images) и Clean Up Images, но они не видят старые размеры изображений.

Вопрос: Как удалить нужные размеры изображений из папки wp-content/uploads?

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

Используйте Force Regenerate Thumbnails

Pieter Goosen Pieter Goosen
23 окт. 2014 г. 18:19:46

@PieterGoosen, Спасибо. Пожалуйста, опубликуйте это в ответе, чтобы я мог отметить его как правильный...

Muhammad Hassan Muhammad Hassan
23 окт. 2014 г. 19:03:02

Готово. Рад, что это сработало для вас

Pieter Goosen Pieter Goosen
23 окт. 2014 г. 19:08:43
Все ответы на вопрос 4
3

Быстрое и простое решение этой проблемы — использовать плагин под названием Force Regenerate Thumbnails (к которому я не имею никакого отношения).

В отличие от таких плагинов, как Regenerating Thumbnails, Force Regenerate Thumbnails создает все ваши новые пользовательские размеры и удаляет все избыточные/осиротевшие размеры.

Force Regenerate Thumbnails позволяет удалить все старые размеры изображений и ДЕЙСТВИТЕЛЬНО заново сгенерировать миниатюры для ваших вложений.

23 окт. 2014 г. 19:08:25
Комментарии

Рад, что помогло. Я часто использую этот плагин, когда экспериментирую с размерами изображений. :-)

Pieter Goosen Pieter Goosen
23 окт. 2014 г. 19:09:50

Какая у вас версия WordPress? У меня 4.0.1, и он выдает кучу ошибок.

bikey77 bikey77
25 янв. 2015 г. 10:09:28

Я не тестировал его на версиях 4.0 и выше. Вам стоит связаться с автором плагина, если там есть баги, чтобы он/она мог(ла) заняться исправлением. :-)

Pieter Goosen Pieter Goosen
25 янв. 2015 г. 10:46:09
2

Это просто! Если у вас есть доступ по SSH, войдите в систему и выполните следующие действия для каждого размера. Я показываю только размер 150x150.

Перейдите в нужную папку загрузок через командную строку.

cd /ваш-сайт.com/wp-content/uploads

Давайте проверим, доступен ли этот размер.

find ./uploads/*  -iname '*-150x150.*' -ls

Если вы видите какие-то изображения в выводе, то удалите их с помощью

find ./uploads/*  -iname '*-150x150.*' -exec rm {} \;

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

Или вы можете найти все измененные изображения с помощью этой команды

find . -regextype posix-extended -regex ".*-[[:digit:]]{2,4}x[[:digit:]]{2,4}(@2x)?.(jpg|jpeg|png|eps|gif)" -type f

Если они есть. Тогда вы можете удалить их все следующей командой

find . -regextype posix-extended -regex ".*-[[:digit:]]{2,4}x[[:digit:]]{2,4}(@2x)?.(jpg|jpeg|png|eps|gif)" -type f -exec rm {}  \;

Еще раз, убедитесь, что вы создали резервную копию всего перед выполнением такой команды.

После всего этого, вместо повторного создания всех размеров, вы можете использовать OTF Regenerate Thumbnails.

Этот плагин работает аналогично Regenerate Thumbnails, за исключением того, что изображения изменяются автоматически / на лету, когда они используются. После создания они больше не обрабатываются.

Удачи!

25 сент. 2016 г. 17:23:53
Комментарии

Это всё ещё оставляет старые данные о размерах в базе данных

MrCarrot MrCarrot
6 июн. 2020 г. 13:59:38

Это решение лучше всего подходит для тех, кто воссоздал изображения с помощью wp-cli, а затем нужно было удалить старые размеры из папки webp, созданной ранее конвертером для медиа. Большое спасибо!

Soufiane Sabiri Soufiane Sabiri
16 мар. 2024 г. 21:51:19
2

Я нашел другое решение с использованием командной строки:

shopt -s globstar 
rm  -- **/*{70x70.png,90x90.png,120x79.png,120x80.png,120x120.png,120x101.jpg,150x150.png,200x180.png,300x199.png,300x251.png}
rm  -- **/*{70x70.jpg,90x90.jpg,120x79.jpg,120x80.jpg,120x120.jpg,120x101.jpg,150x150.jpg,200x180.jpg,300x199.jpg,300x251.jpg}

где 300x251.jpg - это размер вашего файла миниатюры.

Если хотите пойти на крайние меры, выполните: rm -- **/*{*x*.png,*x*.jpg,*x*.jpeg,*x*.gif} Этот шаблон удалит все изображения, содержащие 'x' в имени файла, что я не рекомендую делать.

6 мар. 2016 г. 23:06:02
Комментарии

Это всё равно оставляет старые данные о размерах в базе данных

MrCarrot MrCarrot
6 июн. 2020 г. 13:59:44

Думаю, плагин Force Regenerate Thumbnails может решить эту проблему (не на 100% уверен в этом).

Salem F Salem F
8 июн. 2020 г. 23:05:25
2

Шаг 1: В файле functions.php

add_filter( 'intermediate_image_sizes', 'remove_default_img_sizes', 10, 1);
function remove_default_img_sizes( $sizes ) {
  // Указываем размеры изображений, которые нужно удалить
  $targets = ['medium', 'medium_large','thumbnail','large', '1536x1536', '2048x2048','woocommerce_thumbnail','woocommerce_single','woocommerce_gallery_thumbnail','shop_catalog','shop_single','shop_thumbnail'];
  // Перебираем все размеры и удаляем указанные
  foreach($sizes as $size_index=>$size) {
    if(in_array($size, $targets)) {
      unset($sizes[$size_index]);
    }
  }
  return $sizes;
}

Шаг 2: Настройка wp-cli ссылка: https://wp-cli.org Настройка WP-CLI Содержимое файла wp.bat:

@ECHO OFF
php "C:/wp-cli/wp-cli.phar" %*

Ссылка на файл wp-cli.phar: https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar

Шаг 3: Пример использования: wp media regenerate --yes Пример регенерации медиафайлов

12 дек. 2021 г. 19:59:58
Комментарии

Не могу понять: это удалит старые миниатюры?

Rup Rup
13 дек. 2021 г. 00:22:29

Даже в этом случае, это займет время на перегенерацию миниатюр, которые на самом деле не нуждаются в перегенерации.

Rup Rup
13 дек. 2021 г. 00:23:14