Как создать автоматический импорт из Excel в WordPress с помощью WPUnit

Часто при работе с WordPress возникает задача массовой загрузки данных из Excel-файлов — будь то товары, отзывы, пользователи или записи блога. Если вы хотите автоматизировать процесс импорта данных из Excel, но не хотите использовать громоздкие плагины с лишним функционалом, то в этой статье я расскажу, как создать собственное решение с помощью PHP и библиотеки PHPExcel (или её форка PhpSpreadsheet), интегрированное в WordPress и использующее возможности WPUnit для удобства и гибкости.

Почему автоматический импорт из Excel важен для WordPress

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

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

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

Подготовка среды: установка PhpSpreadsheet и подключение к WordPress

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

Чтобы подключить PhpSpreadsheet в плагине или теме, создайте файл wpunit-import-excel.php в каталоге плагинов и добавьте следующий код для подключения автозагрузчика:

require_once __DIR__ . '/vendor/autoload.php'; // если используете composer

Если composer не используется, скачайте PhpSpreadsheet и подключите вручную нужные файлы.

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

Чтение Excel и импорт данных: пример функции WPUnit_import_excel_data

Рассмотрим пример функции, которая читает Excel-файл и создаёт посты типа "product" с метаданными. В реальной задаче вы можете адаптировать тип записи и структуру метаданных под свои нужды.

use PhpOffice\PhpSpreadsheet\IOFactory;

function WPUnit_import_excel_data($file_path) {
    // Загрузка файла
    $spreadsheet = IOFactory::load($file_path);
    $worksheet = $spreadsheet->getActiveSheet();

    // Получаем максимальное число строк
    $highestRow = $worksheet->getHighestRow();

    for ($row = 2; $row <= $highestRow; ++$row) { // Предполагаем, что первая строка - заголовки
        $product_name = $worksheet->getCell('A' . $row)->getValue();
        $price = $worksheet->getCell('B' . $row)->getValue();
        $description = $worksheet->getCell('C' . $row)->getValue();

        if (empty($product_name)) {
            continue; // пропускаем пустые строки
        }

        // Создаём новый пост типа product
        $post_id = wp_insert_post([
            'post_title' => wp_strip_all_tags($product_name),
            'post_content' => $description,
            'post_status' => 'publish',
            'post_type' => 'product',
        ]);

        if (!is_wp_error($post_id)) {
            // Добавляем мета данные
            update_post_meta($post_id, '_price', floatval($price));
        }
    }
}

Вызовите эту функцию, передав путь к вашему загруженному Excel-файлу. Для удобства можно сделать отдельную страницу в админке с формой загрузки файла и кнопкой запуска импорта.

Создание интерфейса загрузки Excel в админке WordPress

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

function WPUnit_add_import_menu() {
    add_submenu_page(
        'tools.php',
        'Импорт Excel',
        'Импорт Excel',
        'manage_options',
        'wpunit-import-excel',
        'WPUnit_import_excel_page'
    );
}
add_action('admin_menu', 'WPUnit_add_import_menu');

function WPUnit_import_excel_page() {
    if (!empty($_FILES['wpunit_excel_file']['tmp_name'])) {
        $uploaded_file = $_FILES['wpunit_excel_file']['tmp_name'];
        WPUnit_import_excel_data($uploaded_file);
        echo '<div class="updated notice"><p>Импорт успешно завершен.</p></div>';
    }
    ?>
    <div class="wrap">
        <h1>Импорт данных из Excel</h1>
        <form method="post" enctype="multipart/form-data">
            <input type="file" name="wpunit_excel_file" accept=".xlsx,.xls,.csv" required />
            <input type="submit" class="button button-primary" value="Импортировать" />
        </form>
    </div>
    <?php
}

Теперь в разделе "Инструменты" появится пункт "Импорт Excel", где вы сможете загружать файлы и запускать импорт без лишних усилий.

Расширение функционала: обработка ошибок и обновление данных

В реальном проекте важно предусмотреть обработку ошибок, проверку формата и обновление существующих записей. Например, можно добавить проверку на уникальность по названию или артикулу товара, чтобы не создавать дубликаты.

Пример проверки и обновления поста:

function WPUnit_get_product_by_name($name) {
    $posts = get_posts([
        'post_type' => 'product',
        'title' => $name,
        'posts_per_page' => 1,
        'post_status' => 'any',
    ]);
    return !empty($posts) ? $posts[0] : null;
}

// В цикле импорта
$product = WPUnit_get_product_by_name($product_name);
if ($product) {
    // Обновляем пост
    wp_update_post([
        'ID' => $product->ID,
        'post_content' => $description
    ]);
    update_post_meta($product->ID, '_price', floatval($price));
} else {
    // Создаём новый
    $post_id = wp_insert_post([...]);
}

Также не забудьте добавить проверку nonce и права доступа при загрузке файла для безопасности.

Интеграция с плагинами WPSHOP для расширения возможностей

Если вы используете плагин WPRemark для отзывов, можно расширить импорт, загружая отзывы из Excel и прикрепляя их к товарам. Аналогично с WPStories — импортировать истории пользователей.

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

Итоги и советы по автоматическому импорту Excel в WordPress

Автоматический импорт из Excel — мощный инструмент для ускорения работы с сайтом. Использование PhpSpreadsheet вместе с кастомными функциями WPUnit позволяет создать гибкое и адаптируемое решение без избыточных плагинов.

Основные рекомендации:

  • Всегда проверяйте и валидируйте данные из Excel перед импортом.
  • Добавляйте обработку ошибок и логирование для контроля процесса.
  • Используйте уникальные идентификаторы для обновления существующих записей.
  • Обеспечивайте безопасность загрузки файлов через nonce и проверку прав.
  • Интегрируйте импорт с другими плагинами WPSHOP для расширения функционала.
Как создать автоматические бэкапы базы данных WordPress без плагинов
15.01.2026
Как использовать метод WPUnit Database Query для эффективной работы с базой данных WordPress
30.12.2025
Как использовать хуки в WordPress: практические примеры и советы
27.11.2025
Как создать бесплатный плагин WordPress с нуля: пошаговое руководство
30.11.2025
Как создать автоматический импорт из Telegram в WordPress с помощью WPUnit
26.03.2026