Как сделать автоматический экспорт постов WordPress в Excel

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

Почему нужен автоматический экспорт постов в Excel

Экспорт данных вручную через админку WordPress ограничен и не всегда удобен, особенно при больших объемах или необходимости регулярной выгрузки. Автоматизация позволяет:

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

Рассмотрим как реализовать такое решение самостоятельно и с помощью популярных плагинов.

Как программно экспортировать посты в Excel в WordPress

Подготовка и подключение библиотеки для работы с Excel

Для создания Excel-файлов из PHP лучше всего использовать библиотеку PhpSpreadsheet. Она поддерживает XLSX и другие форматы и работает на сервере без дополнительных приложений.

Чтобы подключить PhpSpreadsheet в WordPress, можно использовать Composer (если есть доступ к серверу и разрешена установка пакетов) или загрузить библиотеку вручную в папку плагина.

Пример подключения через Composer:

composer require phpoffice/phpspreadsheet

Если Composer использовать нельзя, скачайте архив с GitHub и разместите в папке с плагином.

Пример функции для экспорта постов в Excel

Ниже пример функции wpboot_export_posts_to_excel, которая собирает посты, формирует Excel и сохраняет файл в папку uploads:

function wpboot_export_posts_to_excel() {
    if ( ! class_exists('PhpOffice\PhpSpreadsheet\Spreadsheet') ) {
        return new WP_Error('missing_library', 'PhpSpreadsheet library is not loaded.');
    }

    $args = [
        'post_type' => 'post',
        'posts_per_page' => -1,
        'post_status' => 'publish',
    ];
    $posts = get_posts($args);

    $spreadsheet = new \PhpOffice\PhpSpreadsheet\Spreadsheet();
    $sheet = $spreadsheet->getActiveSheet();

    // Заголовки столбцов
    $sheet->setCellValue('A1', 'ID');
    $sheet->setCellValue('B1', 'Заголовок');
    $sheet->setCellValue('C1', 'Дата публикации');
    $sheet->setCellValue('D1', 'Автор');

    $row = 2;
    foreach ($posts as $post) {
        $sheet->setCellValue('A' . $row, $post->ID);
        $sheet->setCellValue('B' . $row, $post->post_title);
        $sheet->setCellValue('C' . $row, get_the_date('Y-m-d', $post));
        $sheet->setCellValue('D' . $row, get_the_author_meta('display_name', $post->post_author));
        $row++;
    }

    $writer = \PhpOffice\PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'Xlsx');
    $upload_dir = wp_upload_dir();
    $file_path = $upload_dir['basedir'] . '/wpboot-posts-export.xlsx';

    try {
        $writer->save($file_path);
    } catch (Exception $e) {
        return new WP_Error('save_error', $e->getMessage());
    }

    return $upload_dir['baseurl'] . '/wpboot-posts-export.xlsx';
}

Эта функция возвращает URL к созданному Excel-файлу или ошибку.

Автоматизация экспорта через WP-Cron

Чтобы выгрузка происходила автоматически, например, раз в сутки, добавим задачу в WP-Cron.

Регистрация расписания и задачи

function wpboot_add_cron_interval($schedules) {
    $schedules['daily'] = [
        'interval' => 86400,
        'display' => __('Раз в сутки')
    ];
    return $schedules;
}
add_filter('cron_schedules', 'wpboot_add_cron_interval');

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

add_action('wpboot_daily_export_event', 'wpboot_do_daily_export');

function wpboot_do_daily_export() {
    $file_url = wpboot_export_posts_to_excel();
    if (!is_wp_error($file_url)) {
        // Здесь можно отправить файл по почте или залогировать результат
    }
}

Теперь раз в сутки будет создаваться файл с экспортом.

Плагины для экспорта постов в Excel и их возможности

Если не хочется писать код, можно использовать готовые плагины. Вот несколько проверенных вариантов:

  • WP All Export — мощный инструмент для экспорта любых данных из WordPress, включая посты, с гибкими настройками и поддержкой Excel. Есть бесплатная и платная версии.
  • Export any WordPress data to XML/CSV — позволяет экспортировать данные в CSV, которые легко открыть в Excel.
  • Advanced Order Export For WooCommerce — если нужно экспортировать посты типа заказов WooCommerce в Excel.

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

Пример настройки WP All Export для Excel

После установки:

  1. Создайте новый экспорт и выберите тип постов.
  2. Настройте поля, которые хотите экспортировать (заголовок, дата, автор и др.).
  3. Выберите формат Excel (XLSX).
  4. Настройте расписание экспорта, чтобы выгрузка происходила автоматически.

Отправка Excel-файла на почту автоматически

Часто нужно не просто создать файл, а отправить его кому-то на почту. Добавим в функцию wpboot_do_daily_export отправку письма с вложением:

function wpboot_do_daily_export() {
    $file_url = wpboot_export_posts_to_excel();
    if (is_wp_error($file_url)) {
        error_log('WPBoot export error: ' . $file_url->get_error_message());
        return;
    }

    $upload_dir = wp_upload_dir();
    $file_path = $upload_dir['basedir'] . '/wpboot-posts-export.xlsx';

    $to = 'admin@example.com';
    $subject = 'Автоматический экспорт постов WordPress';
    $message = 'В приложении файл с актуальным экспортом постов.';
    $headers = ['Content-Type: text/html; charset=UTF-8'];

    $attachments = [$file_path];

    wp_mail($to, $subject, $message, $headers, $attachments);
}

Не забудьте заменить admin@example.com на нужный адрес.

Выводы и рекомендации

Автоматический экспорт постов в Excel — полезный инструмент для администраторов и разработчиков, который можно реализовать как кодом, так и с помощью плагинов.

Используйте библиотеку PhpSpreadsheet для гибкости и контроля вывода. WP-Cron поможет автоматизировать процесс. Для быстрой реализации подойдут плагины, например WP All Export.

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

Для безопасности и производительности запускайте экспорт в off-peak время и следите за размером файлов.

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

Автоматическое удаление старого контента в WordPress: пошаговое руководство
09.12.2025
Как автоматизировать обновление тем и плагинов в WordPress без рисков
15.03.2026
Как отключить кэширование для определённых страниц WordPress
10.02.2026
Как использовать WooCommerce хуки для автоматизации изменений в корзине
26.06.2026
Как отключить Emoji в WordPress для ускорения сайта
15.03.2026