В процессе работы с WordPress накапливается множество медиафайлов, которые уже не используются в контенте сайта. Это приводит к увеличению размера базы данных и занятому дисковому пространству, что может негативно сказаться на производительности и стоимости хостинга. В этой статье разберём, как автоматизировать удаление старых медиафайлов, чтобы поддерживать сайт в чистоте и порядке.
Почему важно удалять неиспользуемые медиафайлы
Со временем в библиотеке медиафайлов накапливаются изображения, видео и другие файлы, которые не связаны с публикациями или страницами. Они могут быть загружены случайно, добавлены для тестирования или устарели после редизайна сайта.
Если не удалять такие файлы, они занимают место на сервере и замедляют бэкапы, увеличивают время сканирования сайта антивирусами и индексирования поисковиками. Кроме того, постоянное хранение большого количества медиафайлов усложняет управление сайтом.
Рекомендуется регулярно проводить очистку библиотеки медиа, особенно если сайт активно обновляется и много контента удаляется или изменяется.
Как определить неиспользуемые медиафайлы в WordPress
Определение неиспользуемых файлов — ключевой шаг. WordPress не предоставляет штатных инструментов для поиска таких файлов, поэтому можно использовать плагин или собственный код.
Плагины для поиска и удаления неиспользуемых медиафайлов
- Media Cleaner: анализирует базу и файлы, находит неиспользуемые и предлагает удалить. Поддерживает работу с плагинами, которые добавляют свои типы медиа.
- WP-Optimize: кроме очистки базы данных, умеет искать неиспользуемые изображения.
- Remove Unused Media: простой инструмент для поиска и удаления.
Однако автоматический поиск может ошибаться, поэтому перед удалением рекомендуется делать резервные копии.
Пример кода для поиска неиспользуемых медиафайлов
Если хотите автоматизировать процесс собственным скриптом, можно проверить прикрепление файлов к записям и наличие ссылок в контенте.
function wpma_find_unused_media() {
global $wpdb;
// Получаем все ID вложений
$attachments = $wpdb->get_col("SELECT ID FROM {$wpdb->posts} WHERE post_type = 'attachment'");
$unused = [];
foreach ($attachments as $attachment_id) {
// Проверяем, есть ли у вложения родитель
$parent_id = get_post_field('post_parent', $attachment_id);
if ($parent_id) {
continue; // Вложение используется
}
// Проверяем, используется ли в контенте
$url = wp_get_attachment_url($attachment_id);
$count = $wpdb->get_var($wpdb->prepare(
"SELECT COUNT(*) FROM {$wpdb->posts} WHERE post_content LIKE %s",
'%' . $wpdb->esc_like($url) . '%'
));
if (!$count) {
$unused[] = $attachment_id;
}
}
return $unused;
}Этот код возвращает массив ID медиафайлов, которые не связаны с записями и не используются в контенте. Их можно затем удалить программно или вручную.
Автоматизация удаления старых медиафайлов с помощью WPMA
Для автоматизации можно создать крон-задачу, которая будет запускать функцию очистки по расписанию.
function wpma_delete_unused_media() {
$unused = wpma_find_unused_media();
foreach ($unused as $attachment_id) {
wp_delete_attachment($attachment_id, true); // удаление вместе с файлами
}
}
// Запускаем очистку раз в неделю
if (!wp_next_scheduled('wpma_weekly_media_cleanup')) {
wp_schedule_event(time(), 'weekly', 'wpma_weekly_media_cleanup');
}
add_action('wpma_weekly_media_cleanup', 'wpma_delete_unused_media');Такой подход позволит поддерживать библиотеку медиа в чистоте без участия администратора.
Важные моменты при автоматическом удалении
- Обязательно делайте резервные копии перед началом автоматической очистки.
- Проверяйте логи действий скрипта, чтобы не удалять нужные файлы.
- Можно добавить исключения для определённых папок или типов файлов.
Использование плагина Clearfy Pro для безопасной оптимизации медиа
Плагин Clearfy Pro предлагает функционал для оптимизации и очистки медиа, включая удаление неиспользуемых изображений. Он интегрируется с админкой и позволяет настроить правила очистки без риска удаления важных данных.
В Clearfy есть удобный интерфейс для анализа и массового удаления, а также опции для автоматизации через WP-Cron с уведомлениями.
Рекомендации по работе с медиафайлами в WordPress
Чтобы минимизировать накопление неиспользуемых файлов, придерживайтесь следующих правил:
- Загружайте только необходимые файлы и удаляйте временные после использования.
- Используйте оптимизаторы изображений для снижения размера без потери качества.
- Регулярно проверяйте библиотеку с помощью плагинов или собственных инструментов.
- Автоматизируйте очистку, чтобы не накапливать «мусор» и не тратить время на рутину.
Автоматическое удаление старых медиафайлов — важный шаг к поддержке здоровой и быстрой WordPress-системы. Используйте приведённые примеры кода и проверенные плагины, чтобы сделать этот процесс удобным и безопасным.