Как создать автоматический импорт данных из Google Sheets в WordPress

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

Почему стоит использовать автоматический импорт из Google Sheets в WordPress

Google Sheets — удобный инструмент для хранения и совместного редактирования данных. Если у вас есть, например, каталог товаров, расписание мероприятий или списки задач, обновлять их в таблице проще, чем в админке сайта. Автоматический импорт позволяет:

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

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

Обзор плагинов для импорта из Google Sheets

Существуют плагины, которые упрощают интеграцию Google Sheets и WordPress. Рассмотрим несколько из них.

1. WP All Import + Google Sheets Addon

Плагин WP All Import позволяет импортировать данные из разных источников, включая Google Sheets через дополнения. Он подходит для сложных структур и больших объемов данных.

Преимущества:

  • Гибкая настройка сопоставления полей.
  • Поддержка кастомных типов записей и таксономий.
  • Автоматизация по расписанию через WP-Cron.

2. Inline Google Spreadsheet Viewer

Этот бесплатный плагин позволяет встраивать таблицы Google Sheets на страницы сайта с помощью шорткодов. Он хорошо подходит для отображения данных, но не для сложного импорта в базу WordPress.

3. WPTable Reloaded + Google Sheets

Если вы работаете с таблицами, можно использовать плагин для таблиц с импортом данных из Google Sheets. Подходит для визуального отображения, но не для создания кастомных записей.

Реализация автоматического импорта с помощью Google Sheets API и кода

Для гибкой и точной настройки автоматического импорта можно использовать Google Sheets API и писать собственный код. Ниже приведено пошаговое руководство.

Шаг 1. Создайте проект в Google Cloud и настройте API

Перейдите в Google Cloud Console, создайте новый проект и активируйте Google Sheets API.

Создайте учетные данные типа Service Account и скачайте JSON-файл с ключом. Добавьте этот адрес электронной почты в доступ к вашей таблице Google Sheets с правом просмотра.

Шаг 2. Установите библиотеку Google API Client для PHP

Если у вас на сервере установлен Composer, выполните в папке темы или плагина команду:

composer require google/apiclient:^2.0

Если Composer недоступен, можно скачать библиотеку вручную, но это сложнее.

Шаг 3. Создайте функцию импорта в WordPress

Ниже пример функции wptasks_import_google_sheets_data(), которая подключается к Google Sheets, получает данные и импортирует их в кастомный тип записи task.

function wptasks_import_google_sheets_data() {
    require_once __DIR__ . '/vendor/autoload.php'; // путь к автозагрузчику

    $client = new Google_Client();
    $client->setApplicationName('WPTasks Import');
    $client->setScopes(Google_Service_Sheets::SPREADSHEETS_READONLY);
    $client->setAuthConfig(__DIR__ . '/credentials.json'); // путь к JSON ключу

    $service = new Google_Service_Sheets($client);
    $spreadsheetId = 'ваш_ID_таблицы';
    $range = 'Лист1!A2:C100'; // диапазон с данными

    $response = $service->spreadsheets_values->get($spreadsheetId, $range);
    $values = $response->getValues();

    if (empty($values)) {
        return;
    }

    foreach ($values as $row) {
        $title = sanitize_text_field($row[0]);
        $description = sanitize_textarea_field($row[1]);
        $due_date = sanitize_text_field($row[2]);

        // Проверяем, существует ли уже запись с таким названием
        $existing = get_page_by_title($title, OBJECT, 'task');
        if ($existing) {
            // Обновляем запись
            wp_update_post([
                'ID' => $existing->ID,
                'post_content' => $description
            ]);
            update_post_meta($existing->ID, 'due_date', $due_date);
        } else {
            // Создаем новую запись
            $post_id = wp_insert_post([
                'post_title' => $title,
                'post_content' => $description,
                'post_status' => 'publish',
                'post_type' => 'task'
            ]);
            if ($post_id) {
                update_post_meta($post_id, 'due_date', $due_date);
            }
        }
    }
}

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

Шаг 4. Запуск импорта по расписанию

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

function wptasks_schedule_import() {
    if (!wp_next_scheduled('wptasks_google_sheets_import_event')) {
        wp_schedule_event(time(), 'hourly', 'wptasks_google_sheets_import_event');
    }
}
add_action('wp', 'wptasks_schedule_import');

add_action('wptasks_google_sheets_import_event', 'wptasks_import_google_sheets_data');

Это запустит функцию импорта каждый час. Можно изменить частоту на нужную вам.

Регистрация кастомного типа записи «task» для хранения данных

Пример регистрации типа записи для задач:

function wptasks_register_task_post_type() {
    $labels = [
        'name' => 'Задачи',
        'singular_name' => 'Задача',
        'add_new' => 'Добавить задачу',
        'add_new_item' => 'Добавить новую задачу',
        'edit_item' => 'Редактировать задачу',
        'new_item' => 'Новая задача',
        'view_item' => 'Просмотреть задачу',
        'search_items' => 'Поиск задач',
        'not_found' => 'Задачи не найдены',
        'not_found_in_trash' => 'Задачи не найдены в корзине'
    ];

    $args = [
        'labels' => $labels,
        'public' => true,
        'has_archive' => true,
        'supports' => ['title', 'editor'],
        'show_in_rest' => true
    ];

    register_post_type('task', $args);
}
add_action('init', 'wptasks_register_task_post_type');

Это позволит удобно работать с задачами и отображать их на сайте.

Советы по безопасности и производительности при импорте

При работе с Google Sheets API важно хранить ключи доступа в защищённом месте, например, вне публичной папки сайта. Не забудьте ограничить права доступа к таблице.

Если объем данных большой, выполняйте импорт частями, чтобы не превышать лимиты по времени выполнения скриптов.

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

Выводы и полезные ссылки

Автоматический импорт данных из Google Sheets в WordPress позволяет поддерживать актуальность контента, экономит время и снижает риск ошибок. Вы можете использовать готовые плагины или написать собственный код с использованием Google Sheets API.

Полезные ресурсы:

Как создать динамический список задач в WordPress с помощью REST API
27.03.2026
Создание multisite с поддоменами в WordPress: технические особенности и примеры
01.01.2026
Как создать персонализированный Task Manager в WordPress
01.11.2025
Как создать автоматический импорт данных из XML в WordPress
02.02.2026
Как отправлять автоматические уведомления по email в WordPress
10.12.2025