Удаление изображений из библиотеки медиа WordPress по дате

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

Почему важно удалять старые изображения по дате

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

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

Если удалять изображения вручную через административную панель — это долго и неудобно. Поэтому рассмотрим автоматизированные варианты.

Удаление изображений по дате с помощью WP CLI

Если у вас есть доступ к командной строке и установлен WP CLI, можно быстро удалить медиафайлы по дате.

Команда для просмотра всех вложений по дате выглядит так:

wp media list --post_mime_type=image --format=ids --date_query_column=post_date --date_query='before=2022-01-01'

Чтобы удалить все изображения, загруженные до 1 января 2022 года, выполните:

wp media delete $(wp media list --post_mime_type=image --format=ids --date_query_column=post_date --date_query='before=2022-01-01')

WP CLI — очень мощный инструмент, но требует прав доступа к серверу.

Удаление изображений по дате с помощью пользовательского кода

Если доступа к WP CLI нет, можно написать функцию для удаления медиафайлов по дате через PHP. Например, добавим следующий код в файл functions.php вашей темы или создадим мини-плагин:

function wplog_delete_images_before_date( $date ) {
    $args = array(
        'post_type'      => 'attachment',
        'post_mime_type' => 'image',
        'posts_per_page' => -1,
        'date_query'     => array(
            array(
                'before' => $date,
                'inclusive' => true,
            ),
        ),
        'fields'         => 'ids',
    );

    $images = get_posts( $args );

    if ( empty( $images ) ) {
        return 'Изображения не найдены для удаления';
    }

    foreach ( $images as $image_id ) {
        wp_delete_attachment( $image_id, true );
    }

    return count( $images ) . ' изображений удалено.';
}

// Пример вызова функции для удаления изображений до 1 января 2022
// echo wplog_delete_images_before_date('2022-01-01');

Этот код ищет все вложения с типом «image», дата которых меньше или равна указанной, и удаляет их вместе с файлами.

Обязательно сделайте резервную копию сайта перед запуском такого кода!

Как использовать плагин Media Cleaner для удаления старых изображений

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

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

Для интеграции с плагинами WPShop, например, Clearfy Pro, можно настроить автоматическое удаление неиспользуемых медиа через Clearfy, что дополнительно оптимизирует сайт.

Автоматизация удаления старых изображений с помощью планировщика задач WordPress

Чтобы регулярно очищать старые изображения, можно создать CRON-задачу в WordPress. Ниже пример, как добавить ежемесячное удаление медиа старше 6 месяцев:

function wplog_schedule_monthly_cleanup() {
    if ( ! wp_next_scheduled( 'wplog_monthly_media_cleanup' ) ) {
        wp_schedule_event( time(), 'monthly', 'wplog_monthly_media_cleanup' );
    }
}
add_action( 'wp', 'wplog_schedule_monthly_cleanup' );

function wplog_monthly_media_cleanup() {
    $date = date( 'Y-m-d', strtotime( '-6 months' ) );
    wplog_delete_images_before_date( $date );
}
add_action( 'wplog_monthly_media_cleanup', 'wplog_monthly_media_cleanup' );

Этот код регистрирует ежемесячное событие, которое вызывает функцию удаления картинок старше 6 месяцев.

Такой подход позволяет держать медиа-библиотеку в порядке автоматически.

Рекомендации по безопасности и бэкапам

Перед массовым удалением медиа всегда делайте резервную копию сайта и базы данных. Ошибки могут привести к потере нужных файлов и нарушению работы сайта.

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

Итог

Удаление изображений из медиа-библиотеки WordPress по дате — частая задача оптимизации. Можно использовать WP CLI, собственный PHP-код с функцией wplog_delete_images_before_date, или специализированные плагины, например, Media Cleaner. Автоматизация с помощью WP CRON позволяет регулярно поддерживать чистоту и порядок.

Если хотите удобных решений, обратите внимание на Clearfy Pro — этот плагин поможет избежать накопления «мусорных» медиафайлов без лишних усилий.

Как избежать конфликтов между плагинами в WordPress: практические советы и решения
13.12.2025
Внутренняя переадресация в WordPress: как сделать без плагинов
03.12.2025
Как создать автоматический список постов с уникальным порядком в WordPress
04.03.2026
Добавление уникальных полей в формы WordPress: подробное руководство
28.01.2026
Удаление изображений из библиотеки медиа WordPress по дате
22.02.2026