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

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

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

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

  • Легко обновлять данные без доступа к сайту.
  • Поддержка совместной работы и истории изменений.
  • Возможность автоматизации и интеграции через Google API.
  • Бесплатный и доступный инструмент.

Для WordPress это открывает возможности динамического наполнения сайта — например, каталогов, расписаний, прайс-листов и других структурированных данных.

Подготовка Google Sheets: публикаем и получаем доступ к данным

Для импорта данных из Google Sheets в WordPress нам потребуется получить URL с данными в формате JSON или CSV. Существует несколько способов это сделать:

Публикация таблицы для публичного доступа

1. В Google Sheets откройте нужную таблицу.

2. В меню выберите Файл > Опубликовать в интернете.

3. Выберите нужный лист и формат публикации (CSV или TSV предпочтительнее).

4. Нажмите Опубликовать и скопируйте ссылку.

Эта ссылка станет источником данных для импорта.

Использование Google Sheets API для защищенного доступа

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

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

Рассмотрим пример, как получить CSV из опубликованной Google Sheets и обработать данные в WordPress для создания записей кастомного типа.

Шаг 1. Функция для загрузки CSV из Google Sheets

function wpdesk_import_from_google_sheets($csv_url) {
    $response = wp_remote_get($csv_url);
    if (is_wp_error($response)) {
        return false;
    }
    $body = wp_remote_retrieve_body($response);
    if (empty($body)) {
        return false;
    }
    $lines = explode("\n", $body);
    $data = [];
    foreach ($lines as $line) {
        $data[] = str_getcsv($line);
    }
    return $data;
}

Эта функция получает CSV по URL и разбивает его на массив строк и столбцов.

Шаг 2. Создание или обновление записей на основе данных

Далее пройдемся по массиву и создадим записи кастомного типа wpdesk_item с метаданными из таблицы.

function wpdesk_process_google_sheets_data($data) {
    if (empty($data) || count($data) < 2) {
        return;
    }
    $header = $data[0];
    for ($i = 1; $i < count($data); $i++) {
        $row = array_combine($header, $data[$i]);
        if (!$row) continue;
        // Поиск существующей записи по уникальному полю, например 'sku'
        $existing = new WP_Query([
            'post_type' => 'wpdesk_item',
            'meta_query' => [[
                'key' => 'sku',
                'value' => $row['sku'],
                'compare' => '='
            ]],
            'posts_per_page' => 1
        ]);
        if ($existing->have_posts()) {
            $post_id = $existing->posts[0]->ID;
            // Обновляем запись
            wp_update_post([
                'ID' => $post_id,
                'post_title' => $row['title'],
                'post_content' => $row['description'],
            ]);
        } else {
            // Создаем новую запись
            $post_id = wp_insert_post([
                'post_title' => $row['title'],
                'post_content' => $row['description'],
                'post_status' => 'publish',
                'post_type' => 'wpdesk_item'
            ]);
        }
        if ($post_id) {
            // Обновляем мета
            update_post_meta($post_id, 'sku', $row['sku']);
            update_post_meta($post_id, 'price', $row['price']);
        }
    }
}

Шаг 3. Запуск импорта через WP-CLI или крон

Для регулярного обновления данных удобнее запускать импорт через WP-CLI или планировщик задач WordPress (WP-Cron). Пример использования WP-CLI:

if (defined('WP_CLI') && WP_CLI) {
    WP_CLI::add_command('wpdesk_import_google_sheets', function() {
        $csv_url = 'https://docs.google.com/spreadsheets/d/e/ВАШ_ИДЕНТИФИКАТОР/pub?output=csv';
        $data = wpdesk_import_from_google_sheets($csv_url);
        if (!$data) {
            WP_CLI::error('Не удалось загрузить данные');
            return;
        }
        wpdesk_process_google_sheets_data($data);
        WP_CLI::success('Импорт данных завершён');
    });
}

Или создайте функцию для планировщика:

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

add_action('wpdesk_google_sheets_import_hook', function() {
    $csv_url = 'https://docs.google.com/spreadsheets/d/e/ВАШ_ИДЕНТИФИКАТОР/pub?output=csv';
    $data = wpdesk_import_from_google_sheets($csv_url);
    if ($data) {
        wpdesk_process_google_sheets_data($data);
    }
});

Варианты расширения и интеграции с WPShop

Если вы используете продукты WPShop, например, WPGPT для генерации описаний, можно дополнительно обогащать импортируемые данные автоматически.

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

Заключение по интеграции Google Sheets и WordPress

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

Не забывайте о безопасности: если данные конфиденциальны, лучше использовать Google API с авторизацией, а не публичную публикацию. Также важно оптимизировать частоту запуска импорта, чтобы не создавать лишнюю нагрузку на сервер.

Как ограничить доступ к страницам WordPress по ролям пользователей
11.12.2025
Как оценивать и отзывать автоматические отзывы в WordPress с подтверждением
24.03.2026
Как добавить логику в шаблоны WordPress через хуки: практические примеры и советы
19.01.2026
Как создать автоматическое сохранение форм в WordPress с помощью AJAX
05.01.2026
Как создать автоматические резервные копии в WordPress с помощью плагинов
25.11.2025

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