Автоматический импорт из Google Sheets в WordPress

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

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

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

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

Для автоматизации нам понадобится:

  • Создать Google Sheets с нужными данными;
  • Настроить доступ к Google Sheets API;
  • Написать функцию для получения данных и импорта их в WordPress.

Настройка доступа к Google Sheets API

Первым шагом нужно получить доступ к Google Sheets API. Для этого:

  1. Перейдите в Google Cloud Console и создайте новый проект.
  2. В разделе API и сервисы включите Google Sheets API.
  3. Перейдите в «Учетные данные» и создайте OAuth 2.0 Client ID или сервисный аккаунт (рекомендуется для серверной интеграции).
  4. Скачайте JSON-файл с ключами и сохраните его в безопасном месте.
  5. Разрешите сервисному аккаунту доступ к вашей таблице Google Sheets (через «Поделиться» по email сервисного аккаунта).

После настройки у вас будет возможность получить данные из таблицы по ее ID.

Пример ID таблицы

В URL таблицы https://docs.google.com/spreadsheets/d/1aBcD_EfgHiJklMnOpQrStUvWxYz/edit ключевым является часть 1aBcD_EfgHiJklMnOpQrStUvWxYz — это и есть ID.

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

Для работы с API в PHP можно использовать библиотеку Google Client. Ниже пример функции для WPcore, которая получает данные из Google Sheets и создает кастомные записи:

function wpcore_import_google_sheets_data() {
    require_once __DIR__ . '/vendor/autoload.php'; // путь к Google API Client

    $client = new \Google_Client();
    $client->setApplicationName('WPcore Google Sheets Import');
    $client->setScopes([\Google_Service_Sheets::SPREADSHEETS_READONLY]);
    $client->setAuthConfig(__DIR__ . '/credentials.json'); // путь к вашим ключам
    $service = new \Google_Service_Sheets($client);

    $spreadsheetId = '1aBcD_EfgHiJklMnOpQrStUvWxYz';
    $range = 'Sheet1!A2:C'; // диапазон с данными

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

    if (empty($values)) {
        return 'Нет данных для импорта';
    }

    foreach ($values as $row) {
        // Предположим, что в таблице: A - заголовок, B - описание, C - цена
        $title = sanitize_text_field($row[0]);
        $description = sanitize_textarea_field($row[1]);
        $price = floatval($row[2]);

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

    return 'Импорт завершен успешно';
}

Эта функция подключается к Google Sheets, получает данные из заданного диапазона, и создаёт или обновляет кастомный тип записи product с метаполем price. Важно: перед использованием создайте тип записи product или замените его на нужный вам.

Автоматизация импорта через Cron

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

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

add_action('wpcore_google_sheets_import_cron', 'wpcore_import_google_sheets_data');

Этот код настроит выполнение функции импорта каждый час. Вы можете изменить интервал, например, на 'twicedaily' или 'daily'.

Рекомендации по безопасности

При работе с Google API важно:

  • Хранить JSON с ключами вне публичных директорий сайта;
  • Ограничивать права доступа сервисного аккаунта только необходимыми;
  • Использовать безопасные функции WordPress для обработки данных (sanitize_text_field, sanitize_textarea_field и т.д.);
  • Проверять и логировать ошибки, чтобы вовремя понимать проблемы.

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

Заключение

Автоматический импорт из Google Sheets — мощный инструмент для динамического обновления контента WordPress. С помощью Google Sheets API и PHP можно настроить надежный обмен данными, который упростит работу контент-менеджеров и позволит всегда держать сайт в актуальном состоянии. В качестве дополнения для улучшения работы с импортом рекомендуем рассмотреть использование плагина Clearfy Pro для оптимизации сайта и контроля производительности.

Как изменить вывод изображений в WordPress без изменения темы
24.01.2026
WooCommerce: как автоматически удалять отменённые заказы по дате
05.05.2026
Как создать свой плагин WordPress с нуля: подробное руководство
30.11.2025
Как безопасно удалить старые записи по метаданным в WordPress
20.01.2026
Как создать автообновляемый кэш в WordPress: практическое руководство
04.11.2025