Удаление загруженных медиа файлов в WordPress по дате

В процессе работы с WordPress накапливается множество медиа файлов — изображений, видео, документов, которые уже не нужны или занимают слишком много места. Особенно актуально это для сайтов с интенсивным обновлением контента. В этой статье мы подробно разберём, как удалить медиа файлы из библиотеки WordPress по дате их загрузки, используя как готовые плагины, так и собственные решения на PHP.

Почему нужно удалять медиа файлы по дате

Медиа файлы в WordPress могут быстро накапливаться, особенно если сайт активно развивается и регулярно публикует новые материалы. Старые файлы, которые больше не используются, занимают дисковое пространство, замедляют бэкапы и усложняют управление сайтом.

Удаление по дате позволяет:

  • Сфокусироваться на очистке именно старого контента.
  • Избежать случайного удаления нужных файлов.
  • Оптимизировать место на сервере и повысить производительность.

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

Использование плагина Media Cleaner для удаления старых медиа файлов

Один из удобных и популярных плагинов для управления медиа — Media Cleaner. Он анализирует библиотеку и показывает неиспользуемые файлы, которые можно безопасно удалить.

Однако стандартно Media Cleaner не позволяет фильтровать файлы по дате загрузки. Для этого можно воспользоваться фильтрами WordPress или добавить дополнительный код, который расширит функционал плагина.

Преимущества Media Cleaner:

  • Автоматическое сканирование и выявление неиспользуемых файлов.
  • Интеграция с популярными плагинами и темами.
  • Возможность восстановления удалённых файлов.

Как написать код для удаления медиа по дате загрузки

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

Основные шаги:

  1. Использовать WP_Query для выбора вложений (post_type = 'attachment') по дате.
  2. Удалить каждый полученный файл с помощью функции wp_delete_attachment().

Пример функции для удаления медиа, загруженных до 1 января 2022 года:

function wpbest_delete_media_before_date($date) {
    $args = [
        'post_type'      => 'attachment',
        'posts_per_page' => -1,
        'date_query'     => [
            [
                'before' => $date,
                'inclusive' => true,
            ],
        ],
        'fields'         => 'ids',
    ];

    $query = new WP_Query($args);

    if (!$query->have_posts()) {
        return 'Нет медиа файлов до указанной даты.';
    }

    foreach ($query->posts as $attachment_id) {
        wp_delete_attachment($attachment_id, true); // true — удаляет физический файл
    }

    return 'Удалено ' . count($query->posts) . ' медиа файлов.';
}

Вызов функции:

echo wpbest_delete_media_before_date('2022-01-01');

Этот код можно разместить в файле functions.php вашей темы или в кастомном плагине. Рекомендуется запускать его однократно и удалять после выполнения.

Дополнительные настройки: удаление только определённых типов файлов

Чтобы удалить, например, только изображения или только PDF, можно добавить параметр post_mime_type в запрос:

$args = [
    'post_type'      => 'attachment',
    'posts_per_page' => -1,
    'date_query'     => [
        [
            'before'    => $date,
            'inclusive' => true,
        ],
    ],
    'post_mime_type' => 'image', // для изображений
    'fields'         => 'ids',
];

Поддерживаемые типы: image, video, audio, application/pdf и другие.

Как автоматизировать процесс с WP Cron

Если вы хотите периодически очищать старые медиа, можно добавить WP Cron задачу, которая будет запускать функцию удаления по расписанию.

Пример регистрации задачи в functions.php:

if (!wp_next_scheduled('wpbest_cron_delete_old_media')) {
    wp_schedule_event(time(), 'daily', 'wpbest_cron_delete_old_media');
}

add_action('wpbest_cron_delete_old_media', function() {
    wpbest_delete_media_before_date('2022-01-01');
});

Этот код будет запускать очистку старых медиа каждый день. Не забудьте настроить дату и добавить логи для контроля.

Советы по безопасному удалению медиа файлов

Удаление медиа может привести к потере данных, если файлы используются на сайте. Чтобы этого избежать:

  • Перед удалением сделайте резервную копию.
  • Проверьте, что файлы не связаны с активным контентом.
  • Используйте плагин Media Cleaner для предварительного анализа.
  • Тестируйте скрипты на тестовом сайте.

Также можно использовать плагин Clearfy Pro для оптимизации работы с медиа и автоматической очистки.

Выводы

Удаление медиа файлов по дате — эффективный способ поддерживать порядок в библиотеке WordPress и экономить место на сервере. Используйте готовые плагины для удобства или пишите собственные скрипты для гибкости. Обязательно делайте резервные копии и проверяйте зависимости перед удалением.

Как использовать REST API в WordPress для создания настраиваемых приложений
23.11.2025
Двойная авторизация в WordPress: реализация без плагинов
13.12.2025
Как избежать конфликтов между плагинами WordPress: практические решения
05.12.2025
Как отключить Gutenberg и вернуться к классическому редактору WordPress
15.01.2026
Как создать свой плагин WordPress с нуля
10.11.2025