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

Интеграция Google Sheets с WordPress является отличным решением для автоматического обновления контента на сайте без ручного редактирования. Такая схема особенно полезна для сайтов с часто изменяющейся информацией: прайс-листами, расписаниями, каталогами и т.д.

Подготовка Google Sheets для импорта

Для начала необходимо подготовить таблицу в Google Sheets. Важно, чтобы данные были структурированы и понятны: первая строка — заголовки столбцов, последующие — записи. Например, таблица с товарами может содержать колонки: Название, Описание, Цена, Изображение.

Далее нужно сделать таблицу доступной для чтения через API или по ссылке. Для простого варианта подойдёт публикация таблицы в интернете с экспортом в формате CSV или JSON.

Использование Google Sheets API для получения данных

Самый гибкий способ — использовать Google Sheets API. Для этого необходимо создать проект в Google Cloud Console, включить API и получить ключ доступа.

После настройки доступа можно написать функцию, которая будет получать данные из таблицы. Ниже пример функции wpelement_get_google_sheet_data(), которая возвращает массив записей из таблицы по её ID:

function wpelement_get_google_sheet_data($spreadsheet_id, $range, $api_key) {
    $url = sprintf('https://sheets.googleapis.com/v4/spreadsheets/%s/values/%s?key=%s', $spreadsheet_id, $range, $api_key);
    $response = wp_remote_get($url);
    if (is_wp_error($response)) {
        return [];
    }
    $body = wp_remote_retrieve_body($response);
    $data = json_decode($body, true);
    if (empty($data['values'])) {
        return [];
    }
    $rows = $data['values'];
    $headers = array_shift($rows);
    $result = [];
    foreach ($rows as $row) {
        $item = [];
        foreach ($headers as $index => $header) {
            $item[$header] = isset($row[$index]) ? $row[$index] : '';
        }
        $result[] = $item;
    }
    return $result;
}

Автоматический импорт данных в WordPress

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

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

function wpelement_import_products_from_sheet() {
    $spreadsheet_id = 'ВАШ_SPREADSHEET_ID';
    $range = 'Лист1!A:D';
    $api_key = 'ВАШ_API_KEY';

    $items = wpelement_get_google_sheet_data($spreadsheet_id, $range, $api_key);
    if (empty($items)) {
        return;
    }

    foreach ($items as $item) {
        $existing = get_page_by_title($item['Название'], OBJECT, 'product');
        $post_data = [
            'post_title' => wp_strip_all_tags($item['Название']),
            'post_content' => $item['Описание'],
            'post_status' => 'publish',
            'post_type' => 'product',
        ];

        if ($existing) {
            $post_data['ID'] = $existing->ID;
            $post_id = wp_update_post($post_data);
        } else {
            $post_id = wp_insert_post($post_data);
        }

        if (!is_wp_error($post_id)) {
            update_post_meta($post_id, '_price', sanitize_text_field($item['Цена']));
            update_post_meta($post_id, '_image_url', esc_url_raw($item['Изображение']));
        }
    }
}

Вы можете запускать функцию wpelement_import_products_from_sheet() вручную или настроить её выполнение по расписанию через WP-Cron, например, раз в час.

Настройка WP-Cron для регулярного обновления данных

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

add_action('wpelement_hourly_import', 'wpelement_import_products_from_sheet');

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

Этот код создаст событие, которое будет запускать импорт каждый час. Не забудьте добавить очистку планировщика при деактивации плагина или темы:

function wpelement_deactivate() {
    $timestamp = wp_next_scheduled('wpelement_hourly_import');
    if ($timestamp) {
        wp_unschedule_event($timestamp, 'wpelement_hourly_import');
    }
}

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

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

  • WP All Import — мощный инструмент для импорта данных из CSV и XML, можно экспортировать Google Sheets в CSV и подключать.
  • Sheets to WP Table Live Sync — плагин для живой синхронизации таблиц Google Sheets с таблицами на сайте.
  • WP Webhooks — с помощью вебхуков интегрируется множество сервисов, включая Google Sheets через сторонние сервисы.

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

Резюме и рекомендации

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

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

Как создать динамический фильтр записей в WordPress без плагинов
28.12.2025
Как удалить пустые категории и таксономии в WordPress с помощью кода
08.04.2026
Как автоматизировать удаление старых комментариев в WordPress
30.03.2026
Ограничение доступа к страницам WordPress по ролям пользователей
26.03.2026
Как создать автоматический импорт постов в WordPress из внешнего источника
25.12.2025