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

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

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

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

Основные преимущества такого подхода:

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

Как получить доступ к Google Sheets через API: создание проекта и ключа

Для работы с Google Sheets через WordPress нам понадобится Google Sheets API. Вот основные шаги:

  1. Перейдите в Google Cloud Console и создайте новый проект.
  2. В разделе «API и сервисы» включите Google Sheets API.
  3. В разделе «Учетные данные» создайте ключ API или OAuth 2.0 клиент (для сервера подойдёт ключ API).
  4. Скопируйте ID таблицы из URL Google Sheets. Например, из адреса https://docs.google.com/spreadsheets/d/1a2b3c4d5e6f7g8h9i0j/edit#gid=0 нужно взять 1a2b3c4d5e6f7g8h9i0j.

Важно: таблица должна быть открыта для чтения по ссылке, иначе запросы API будут возвращать ошибку доступа.

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

Создадим функцию wprobot_fetch_google_sheet_data, которая будет делать запрос к Google Sheets API и возвращать данные в виде массива.

function wprobot_fetch_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 false;
    }

    $body = wp_remote_retrieve_body($response);
    $data = json_decode($body, true);
    if (empty($data['values'])) {
        return false;
    }

    return $data['values'];
}

Здесь:

  • $spreadsheet_id — ID вашей таблицы Google Sheets.
  • $range — диапазон ячеек, например, Sheet1!A1:D100.
  • $api_key — ваш API ключ.

Обработка и вывод данных в WordPress

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

function wprobot_display_google_sheet_table($spreadsheet_id, $range, $api_key) {
    $rows = wprobot_fetch_google_sheet_data($spreadsheet_id, $range, $api_key);
    if (!$rows) {
        return '<p>Не удалось получить данные из Google Sheets.</p>';
    }

    $output = '<table border="1" cellpadding="5" cellspacing="0">';

    // Заголовок таблицы
    $output .= '<thead><tr>';
    foreach ($rows[0] as $header) {
        $output .= '<th>' . esc_html($header) . '</th>';
    }
    $output .= '</tr></thead>';

    // Данные
    $output .= '<tbody>';
    for ($i = 1; $i < count($rows); $i++) {
        $output .= '<tr>';
        foreach ($rows[$i] as $cell) {
            $output .= '<td>' . esc_html($cell) . '</td>';
        }
        $output .= '</tr>';
    }
    $output .= '</tbody></table>';

    return $output;
}

Чтобы вывести таблицу на странице, можно создать шорткод:

add_shortcode('wprobot_google_sheet', function($atts) {
    $atts = shortcode_atts([
        'id' => '',
        'range' => 'Sheet1!A1:D100',
        'key' => '',
    ], $atts);

    if (empty($atts['id']) || empty($atts['key'])) {
        return '<p>Укажите ID таблицы и API ключ.</p>';
    }

    return wprobot_display_google_sheet_table($atts['id'], $atts['range'], $atts['key']);
});

Вызовите на странице: [wprobot_google_sheet id="ВАШ_ID" key="ВАШ_КЛЮЧ" range="Sheet1!A1:D10"]

Автоматизация обновления: как обновлять данные без ручного вмешательства

Чтобы данные обновлялись автоматически, можно использовать WP-Cron и кэширование. Например, сохранять данные в transient на час, а при обновлении очищать кеш и подтягивать свежие данные.

Пример кода для обновления данных и сохранения в transient:

function wprobot_update_sheet_cache($spreadsheet_id, $range, $api_key) {
    $data = wprobot_fetch_google_sheet_data($spreadsheet_id, $range, $api_key);
    if ($data) {
        set_transient('wprobot_google_sheet_data', $data, HOUR_IN_SECONDS);
    }
}

// Запускаем раз в час
if (!wp_next_scheduled('wprobot_hourly_sheet_update')) {
    wp_schedule_event(time(), 'hourly', 'wprobot_hourly_sheet_update');
}
add_action('wprobot_hourly_sheet_update', function() use ($spreadsheet_id, $range, $api_key) {
    wprobot_update_sheet_cache($spreadsheet_id, $range, $api_key);
});

В функции вывода тогда берём данные из кэша get_transient('wprobot_google_sheet_data'), если нет — загружаем напрямую.

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

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

  • WP Robot — мощный плагин для автоматизации контента, который поддерживает импорт из разных источников, включая Google Sheets.
  • Clearfy Pro — оптимизатор с инструментами для интеграции и ускорения сайтов.
  • WP All Import с дополнением для Google Sheets — позволяет импортировать данные из таблиц с гибкой настройкой.

Заключение: когда и почему стоит использовать автоматический импорт из Google Sheets

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

Автоматическое отправление сообщений в Telegram из WordPress
22.12.2025
Автоматическое удаление неактивных заказов в WooCommerce: пошаговое руководство
29.04.2026
Автоматическое отключение неиспользуемых виджетов в WordPress
05.06.2026
Как использовать REST API в WordPress для автоматизации задач
25.11.2025
Автоматический импорт данных из Google Sheets в WordPress
30.01.2026