Как создать автоматический бэкап WordPress с помощью плагинов и кода

Почему автоматический бэкап WordPress необходим

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

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

Обзор популярных плагинов для автоматического бэкапа WordPress

Существует множество плагинов для резервного копирования WordPress, но рассмотрим три наиболее популярных и проверенных варианта:

  • UpdraftPlus — один из самых популярных и функциональных плагинов. Позволяет создавать полные бэкапы, сохранять их в облачных хранилищах (Google Drive, Dropbox, Amazon S3 и др.), а также восстанавливать сайт буквально в пару кликов.
  • BackWPup — мощный плагин с возможностью создавать бэкапы базы данных, файлов и всего сайта, отправлять копии на FTP, Dropbox, S3, почту и пр. Имеет гибкие настройки расписания.
  • WP Time Capsule — плагин с функцией инкрементального бэкапа, т.е. копирует только новые и изменённые файлы, что экономит место и время. Интегрируется с облачными сервисами.

Настройка автоматического бэкапа с UpdraftPlus

Пример настройки UpdraftPlus:

  1. Установите и активируйте плагин через админку WordPress.
  2. Перейдите в раздел Настройки > UpdraftPlus Backups.
  3. Выберите расписание для бэкапа файлов и базы данных (например, ежедневно или еженедельно).
  4. Настройте удалённое хранилище: подключите Google Drive или Dropbox, следуя инструкциям.
  5. Сохраните настройки и запустите первый бэкап вручную для проверки.

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

Создание простого автоматического бэкапа WordPress с помощью PHP-кода

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

Создание функции резервного копирования базы данных

Для начала реализуем функцию wpcontent_create_db_backup, которая экспортирует базу данных в SQL-файл:

function wpcontent_create_db_backup() {
    global $wpdb;
    $tables = $wpdb->get_results('SHOW TABLES', ARRAY_N);
    $sql_dump = '';
    foreach ($tables as $table) {
        $table_name = $table[0];
        $create_table = $wpdb->get_row("SHOW CREATE TABLE {$table_name}", ARRAY_N);
        $sql_dump .= $create_table[1] . ";\n\n";
        $rows = $wpdb->get_results("SELECT * FROM {$table_name}", ARRAY_A);
        foreach ($rows as $row) {
            $values = array_map(function($value) use ($wpdb) {
                return isset($value) ? "'" . esc_sql($value) . "'" : 'NULL';
            }, array_values($row));
            $sql_dump .= "INSERT INTO {$table_name} VALUES (" . implode(',', $values) . ");\n";
        }
        $sql_dump .= "\n";
    }
    $upload_dir = wp_upload_dir();
    $backup_dir = $upload_dir['basedir'] . '/wpcontent_backups';
    if (!file_exists($backup_dir)) {
        wp_mkdir_p($backup_dir);
    }
    $filename = $backup_dir . '/db_backup_' . date('Y-m-d_H-i-s') . '.sql';
    file_put_contents($filename, $sql_dump);
}

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

Резервное копирование файлов сайта

Для копирования файлов можно использовать функцию wpcontent_create_files_backup, которая создаст архив ZIP с основными файлами темы и плагинов:

function wpcontent_create_files_backup() {
    $upload_dir = wp_upload_dir();
    $backup_dir = $upload_dir['basedir'] . '/wpcontent_backups';
    if (!file_exists($backup_dir)) {
        wp_mkdir_p($backup_dir);
    }
    $zip_path = $backup_dir . '/files_backup_' . date('Y-m-d_H-i-s') . '.zip';
    $zip = new ZipArchive();
    if ($zip->open($zip_path, ZipArchive::CREATE) === true) {
        $theme_dir = get_template_directory();
        $plugin_dir = WP_PLUGIN_DIR;
        $dirs_to_backup = [$theme_dir, $plugin_dir];
        foreach ($dirs_to_backup as $dir) {
            $files = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($dir));
            foreach ($files as $file) {
                if (!$file->isDir()) {
                    $filePath = $file->getRealPath();
                    $relativePath = substr($filePath, strlen(ABSPATH));
                    $zip->addFile($filePath, $relativePath);
                }
            }
        }
        $zip->close();
    }
}

Этот код создает ZIP-архив с файлами текущей активной темы и всех плагинов, что часто достаточно для восстановления внешнего вида и функциональности сайта.

Автоматизация запуска резервного копирования с помощью WP-Cron

Чтобы запускать бэкап регулярно, используем WP-Cron. Добавим расписание и хук:

function wpcontent_schedule_backup() {
    if (!wp_next_scheduled('wpcontent_daily_backup_hook')) {
        wp_schedule_event(time(), 'daily', 'wpcontent_daily_backup_hook');
    }
}
add_action('wp', 'wpcontent_schedule_backup');

add_action('wpcontent_daily_backup_hook', function() {
    wpcontent_create_db_backup();
    wpcontent_create_files_backup();
});

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

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

Важно не только создавать бэкапы, но и хранить их надежно. Рекомендуется:

  • Хранить резервные копии вне основного сервера — использовать облачные хранилища или отдельные FTP-серверы.
  • Регулярно удалять устаревшие копии, чтобы не захламлять диск.
  • Шифровать бэкапы, если они содержат конфиденциальные данные.
  • Проверять целостность бэкапов — иногда файлы могут повреждаться.

Если вы используете собственный код, дополнительно можно интегрировать отправку архивов на почту или в облако с помощью API.

Заключение

Автоматическое резервное копирование — жизненно важный элемент администрирования WordPress-сайта. Использование готовых плагинов позволяет быстро и удобно настроить защиту, а написание собственного кода даст свободу и понимание процессов. Комбинируйте эти подходы для максимальной надежности и безопасности вашего проекта на wpcontent.ru.

Как избежать проблем с отображением корзины в WooCommerce при использовании кэширования
22.04.2026
Как автоматически удалять неактивных пользователей в WordPress
08.02.2026
Как удалить или отключить Emoji в WordPress для ускорения сайта
23.01.2026
Удаление неиспользуемых пользовательских полей в WordPress для оптимизации базы данных
11.02.2026
Как изменить длину URL в WordPress через функцию wpcontent_custom_url_length
07.03.2026