Как удалить загруженные файлы из WordPress без плагинов

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

Почему важно контролировать загруженные файлы

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

Удаление файлов из папки wp-content/uploads без удаления записей в базе данных приведёт к "битым" ссылкам на изображения в контенте. Поэтому важна синхронизация между базой данных и файловой системой.

Основные способы удаления медиафайлов

  • Удаление через админ-панель WordPress (Медиатека).
  • Удаление вручную через FTP или файловый менеджер хостинга.
  • Удаление через собственный скрипт на PHP, который корректно удалит запись из базы и файл с диска.

Удаление медиафайлов через админ-панель WordPress

Самый простой и безопасный способ — через стандартный интерфейс WordPress. Для этого:

  1. Перейдите в раздел Медиафайлы > Библиотека.
  2. Выберите нужные файлы.
  3. Нажмите кнопку Удалить навсегда.

Этот метод корректно удалит файл с диска и запись из базы данных. Однако при большом количестве файлов такой способ неудобен и неавтоматизирован.

Удаление файлов вручную через FTP или файловый менеджер

Удаление файлов напрямую из папки wp-content/uploads может освободить место, но при этом записи о файлах останутся в базе данных. Это приведёт к ошибкам при отображении медиа в админке и на сайте.

Если вы всё-таки решили использовать этот способ, рекомендуем предварительно сделать резервную копию БД и файлов. После удаления файлов через FTP выполните оптимизацию базы данных и проверьте целостность ссылок.

Автоматизация удаления медиафайлов без плагинов с помощью PHP

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

Для примера создадим функцию wpbloger_delete_media_by_id, которая удалит медиафайл по ID, удалив при этом и файл с диска, и запись из базы.

function wpbloger_delete_media_by_id($attachment_id) {
    if (!current_user_can('delete_post', $attachment_id)) {
        return new WP_Error('permission_denied', 'У вас нет прав для удаления этого файла');
    }

    // Используем встроенную функцию для удаления вложения
    $deleted = wp_delete_attachment($attachment_id, true); // true — удалить файл с диска

    if ($deleted) {
        return true;
    } else {
        return new WP_Error('delete_failed', 'Не удалось удалить вложение');
    }
}

Эту функцию можно использовать в кастомных скриптах или в консоли WP-CLI, чтобы массово удалять ненужные медиафайлы по ID.

Пример массового удаления по условию

Допустим, нужно удалить все вложения старше 1 года, которые не используются ни в каких постах. Вот пример кода:

function wpbloger_delete_old_unused_media() {
    $args = [
        'post_type'      => 'attachment',
        'posts_per_page' => -1,
        'date_query'     => [
            [
                'before' => '1 year ago',
            ],
        ],
        'meta_query' => [
            [
                'key'     => '_wp_attachment_context',
                'compare' => 'NOT EXISTS',
            ],
        ],
    ];

    $query = new WP_Query($args);

    if ($query->have_posts()) {
        foreach ($query->posts as $attachment) {
            $result = wpbloger_delete_media_by_id($attachment->ID);
            if (is_wp_error($result)) {
                error_log('Ошибка удаления вложения ID ' . $attachment->ID . ': ' . $result->get_error_message());
            }
        }
    }
}

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

Дополнительные рекомендации для безопасного удаления файлов

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

Если вы хотите более удобный интерфейс для управления медиа, обратите внимание на плагины как Clearfy Pro, который предлагает оптимизацию и управление медиафайлами.

Выводы

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

Используйте функцию wp_delete_attachment для корректного удаления, не забывайте о правах доступа и резервных копиях.

Добавь в закладки и поделись с друзьями:

⭐⭐⭐⭐⭐
Как безопасно удалить файлы темы в WordPress без последствий
19.12.2025
Как автоматически удалять старые медиафайлы в WordPress: практическое руководство
11.04.2026
Как использовать хук pre_get_posts для оптимизации SQL-запросов в WordPress
06.05.2026
Как быстро удалить вариации продуктов WooCommerce без плагинов
16.06.2026
Как решить проблему нерабочих AJAX-запросов в WooCommerce: практическое руководство
02.07.2026
×

AI-плагин от WPShop.ru

анализирует конкурентов

пишет статьи

готовит SEO

генерирует изображения

и еще кое-что...
WPGPT
Плагин, который наполняет ваш сайт WordPress
Узнать больше