Если вы активно загружаете изображения в WordPress, то со временем медиабиблиотека может разрастись до огромных размеров, занимая много места на сервере и замедляя резервное копирование сайта. Часто в медиафайлах есть лишние или слишком крупные изображения, которые не нужны для сайта или не используются. В этой статье мы подробно разберём, как найти и удалить такие большие изображения из медиабиблиотеки WordPress, используя как готовые плагины, так и собственные решения на PHP.
Почему важно удалять крупные и неиспользуемые изображения
Медиабиблиотека WordPress по умолчанию хранит все загруженные файлы, включая оригиналы и несколько размеров для каждого изображения. Это может привести к огромному объёму данных на сервере. Чаще всего:
- Большие оригиналы занимают много места, хотя для сайта используются меньшие размеры;
- Некоторые изображения устарели и не используются на страницах;
- Резервное копирование и миграции сайта становятся медленнее из-за большого объёма медиафайлов.
Удаление таких файлов позволит значительно сэкономить место и ускорить работу сайта.
Использование плагинов для удаления больших изображений
Самый простой способ — использовать готовые плагины, которые анализируют медиабиблиотеку и показывают файлы по размеру. Вот несколько полезных вариантов:
1. Media Cleaner
Плагин Media Cleaner сканирует сайт на предмет неиспользуемых и больших файлов. Он показывает список файлов с возможностью удаления. Для анализа изображений по размеру можно использовать фильтрацию.
Ссылка на плагин: https://ru.wordpress.org/plugins/media-cleaner/
2. WP Optimize
WP Optimize имеет встроенный модуль очистки медиабиблиотеки, который позволяет удалять большие и неиспользуемые файлы. Можно настроить автоматическую очистку.
Подробнее: WP Optimize на WPSHOP
3. Regenerate Thumbnails
Хотя этот плагин не удаляет файлы, с его помощью можно заново сгенерировать миниатюры нужного размера, а затем вручную удалить лишние оригиналы.
Пример решения на PHP: скрипт удаления больших изображений
Если вы хотите автоматизировать процесс удаления крупных изображений, можно написать собственный скрипт, который будет проверять размер файла и удалять его, если он превышает лимит, например, 2 МБ. Ниже пример функции wpexpert_delete_large_images(), которую можно добавить в functions.php вашей темы или использовать как часть плагина.
function wpexpert_delete_large_images($max_size_mb = 2) {
$max_size_bytes = $max_size_mb * 1024 * 1024;
$args = array(
'post_type' => 'attachment',
'post_mime_type' => 'image',
'posts_per_page' => -1,
'post_status' => 'inherit',
);
$query = new WP_Query($args);
if (!$query->have_posts()) return;
while ($query->have_posts()) {
$query->the_post();
$file_path = get_attached_file(get_the_ID());
if (file_exists($file_path)) {
$file_size = filesize($file_path);
if ($file_size > $max_size_bytes) {
// Удаляем вложение и файл
wp_delete_attachment(get_the_ID(), true);
error_log('Deleted large image: ' . $file_path . ' (' . round($file_size / 1048576, 2) . ' MB)');
}
}
}
wp_reset_postdata();
}
// Для запуска вызовите функцию, например, в админке:
// wpexpert_delete_large_images(2); // удалит изображения больше 2 МБ
Этот скрипт перебирает все изображения и удаляет те, которые весят больше указанного предела. Перед использованием рекомендуем сделать резервную копию сайта.
Как избежать появления больших изображений в будущем
Чтобы не сталкиваться с проблемой больших изображений:
- Используйте плагины с автоматической оптимизацией изображений, например, Clearfy Pro или другие оптимизаторы;
- Перед загрузкой вручную уменьшайте размер в графических редакторах;
- Ограничьте максимальный размер загружаемых файлов через настройки WordPress или php.ini;
- Регулярно проверяйте медиабиблиотеку и удаляйте неиспользуемые изображения.
Дополнительные советы по работе с медиабиблиотекой
При работе с изображениями в WordPress стоит помнить, что помимо оригинала создаётся несколько копий разного размера. Иногда можно удалить ненужные размеры при помощи плагинов или собственных фильтров, чтобы уменьшить объём.
Например, чтобы убрать создание определённых размеров, используйте следующий код в functions.php:
function wpexpert_disable_image_sizes($sizes) {
unset($sizes['medium']);
unset($sizes['large']);
return $sizes;
}
add_filter('intermediate_image_sizes_advanced', 'wpexpert_disable_image_sizes');
Это позволит избежать накопления ненужных файлов.
Для поиска неиспользуемых изображений можно использовать плагин Expert Review, который помогает анализировать контент и выявлять неиспользуемые медиа.