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

Вопрос или проблема

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

Но теперь, чтобы изменить размер уже загруженных изображений, я использовал плагин WordPress 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
...............................
---------- и так далее ----------

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

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

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

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

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

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

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

cd /your-site.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}

где 300×251.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
enter image description here
содержимое файла 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
enter image description here

Ответ или решение

Удаление ненужных размеров изображений из папки wp-content/uploads в WordPress — это задача, с которой сталкиваются многие администраторы сайтов, стремящиеся оптимизировать пространство на своих хостинг-серверах. Ваша ситуация типична: вы изменили настройки медиа-размеров изображений в WordPress и теперь хотите избавиться от ранее созданных размеров, которые вам больше не нужны. Рассмотрим пошаговое решение этой задачи.

Теория

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

Пример

Использование плагинов

  1. Force Regenerate Thumbnails:

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

    • Установите и активируйте плагин через панель администратора WordPress в разделе «Плагины».

    • Перейдите в раздел “Инструменты” и найдите пункт «Force Regenerate Thumbnails».

    • Следуя инструкциям, запустите процесс удаления и регенерации изображений.

  2. WP-CLI (WordPress Command Line Interface):

    • Это мощный инструмент для управления WordPress через командную строку. Если у вас есть SSH доступ к серверу, WP-CLI позволит выполнять различные операции быстрее и эффективнее.

    • Установите WP-CLI на сервер, следуя инструкциям на официальном сайте.

    • Запустите команду для регенерации изображений с учетом новых настроек: wp media regenerate --yes.

Командная строка

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

  1. Поиск и удаление изображений через SSH:

    • Подключитесь к серверу через SSH.
    • Перейдите в директорию с изображениями: cd /your-site.com/wp-content/uploads.
    • Выполните команду для поиска изображений ненужного размера, например:
      find ./uploads -iname '*-150x150.*' -exec rm {} \;
    • Аналогичным образом удалите изображения других ненужных размеров (например, 300x300, 1024x1024).
  2. Создание скрипта очистки:

    • Используйте следующую команду для удаления нескольких размеров:
      shopt -s globstar
      rm -- **/*{150x150.jpg,300x300.jpg,1024x1024.jpg}
    • Эта команда удалит все файлы указанных размеров.

Применение

На практике комбинированный подход позволит не только избавиться от ненужных изображений, но и предотвратить их создание в будущем. Помните, что перед удалением стоит создать резервную копию сайта. Также, когда вы удалите уже существующие изображения, важно обновить настройки функций, чтобы они больше не создавали ненужные размеры:

  1. Измените настройки в файле functions.php:
    add_filter('intermediate_image_sizes', 'remove_default_img_sizes', 10, 1);
    function remove_default_img_sizes($sizes) {
     $targets = ['medium_large', '1536x1536', '2048x2048'];
     foreach($sizes as $size_index => $size) {
       if(in_array($size, $targets)) {
         unset($sizes[$size_index]);
       }
     }
     return $sizes;
    }

Этот код удалит ненужные размеры из списка обрабатываемых.

Заключение

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

Оцените материал
Добавить комментарий

Капча загружается...