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

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

Почему использовать Google Sheets для управления контентом

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

Использование Google Sheets для контента удобно в случаях:

  • Каталоги товаров или услуг с регулярным обновлением цен и описаний;
  • Списки мероприятий, расписаний;
  • Обновление таблиц с рейтингами, лидерами и пр.;
  • Автоматизация загрузки данных для кастомных постов, таблиц на сайте.

Подготовка Google Sheets и получение доступа к API

Для начала нужно подготовить таблицу и настроить доступ к API:

  1. Создайте Google Sheets с нужными данными. Рекомендуется структурировать таблицу так, чтобы первая строка содержала заголовки столбцов.
  2. Настройте доступ к Google Sheets API. Для этого создайте проект в Google Cloud Console, включите Google Sheets API и создайте сервисный аккаунт с ключом в формате JSON.
  3. Добавьте email сервисного аккаунта в список пользователей с доступом к вашей таблице (через кнопку "Поделиться" в Google Sheets), чтобы API смог читать данные.

Подробные инструкции по настройке есть в официальной документации Google: Google Sheets API Quickstart.

Пример кода для импорта данных из Google Sheets в WordPress

Ниже пример функции wpacademy_import_google_sheets_data(), которая подключается к Google Sheets API и получает данные из таблицы:

function wpacademy_import_google_sheets_data() {
    require_once __DIR__ . '/vendor/autoload.php'; // Google API Client

    $client = new \Google_Client();
    $client->setApplicationName('WPAcademy Google Sheets Import');
    $client->setScopes([Google_Service_Sheets::SPREADSHEETS_READONLY]);
    $client->setAuthConfig(__DIR__ . '/credentials.json');
    $client->setAccessType('offline');

    $service = new Google_Service_Sheets($client);
    $spreadsheetId = 'ВАШ_SPREADSHEET_ID';
    $range = 'Лист1!A1:E100';

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

        if (empty($values)) {
            return 'Данные не найдены.';
        } else {
            $headers = array_shift($values); // первая строка - заголовки
            $result = [];
            foreach ($values as $row) {
                $rowData = [];
                foreach ($headers as $index => $header) {
                    $rowData[$header] = $row[$index] ?? '';
                }
                $result[] = $rowData;
            }
            return $result;
        }
    } catch (Exception $e) {
        return 'Ошибка при получении данных: ' . $e->getMessage();
    }
}

Функция возвращает массив данных из таблицы, который можно использовать для создания или обновления записей в WordPress.

Пример использования данных для создания кастомных постов

Предположим, что у вас есть кастомный тип записи product, и таблица содержит поля: title, description, price. Тогда можно импортировать так:

function wpacademy_create_products_from_sheets() {
    $data = wpacademy_import_google_sheets_data();
    if (is_string($data)) {
        error_log($data); // лог ошибки
        return;
    }

    foreach ($data as $item) {
        wp_insert_post([
            'post_title'   => sanitize_text_field($item['title']),
            'post_content' => sanitize_textarea_field($item['description']),
            'post_type'    => 'product',
            'post_status'  => 'publish',
        ], true);

        $post_id = get_last_post_id(); // функция для получения ID последнего поста
        if ($post_id) {
            update_post_meta($post_id, 'price', floatval($item['price']));
        }
    }
}

Дополнительно можно добавить проверку на существование записи по уникальному полю, чтобы обновлять записи, а не создавать дубликаты.

Плагины для интеграции Google Sheets с WordPress

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

  • WP Sheet Editor — позволяет редактировать записи WordPress через таблицы, а также импортировать и экспортировать данные.
  • Inline Google Spreadsheet Viewer — вставляет таблицы Google Sheets прямо в посты и страницы с автоматическим обновлением.
  • Advanced Custom Fields (ACF) + ACF Google Sheets Add-on — интеграция пользовательских полей с таблицами Google.

Для автоматизации импорта можно настроить cron-задачи, которые будут запускать кастомные функции импорта, используя WP-Cron или серверный cron.

Настройка WP-Cron для регулярного импорта

Добавьте в файл functions.php или в плагин следующий код:

add_action('wpacademy_hourly_import', 'wpacademy_create_products_from_sheets');

if (!wp_next_scheduled('wpacademy_hourly_import')) {
    wp_schedule_event(time(), 'hourly', 'wpacademy_hourly_import');
}

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

Советы и лучшие практики

При работе с Google Sheets API и WordPress учитывайте:

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

Заключение

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

Для дополнительной автоматизации, например, с визуальными настройками импорта, можно рассмотреть продукты с WPShop.

Как избежать проблем с бесплатными темами WordPress: практические советы и примеры
02.02.2026
Как автоматически отключить комментарии на старых записях WooCommerce
01.06.2026
Как создать производительный кеш для WordPress без плагинов
25.02.2026
Удаление и оптимизация базы данных WordPress без плагинов: пошаговое руководство
18.02.2026
Оптимизация базы данных WordPress: удаление старых версий и сбор статистики
09.11.2025