Как удалить ненужные размеры изображений из wp-content/uploads?
Мои стандартные настройки медиафайлов в блоге 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
?

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

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

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

Это просто! Если у вас есть доступ по 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, за исключением того, что изображения изменяются автоматически / на лету, когда они используются. После создания они больше не обрабатываются.
Удачи!

Я нашел другое решение с использованием командной строки:
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' в имени файла, что я не рекомендую делать.

Шаг 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.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
