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

Использование Google Sheets для хранения и редактирования данных — популярное решение для многих проектов. Но как автоматически импортировать эти данные в WordPress, чтобы они всегда были актуальны? В этой статье подробно рассмотрим, как настроить автоматический импорт данных из Google Sheets в WordPress, используя PHP, REST API и плагин WP-Cron для автоматизации процесса.

Почему стоит автоматизировать импорт из Google Sheets в WordPress

Google Sheets удобен для совместной работы и редактирования данных, будь то каталоги товаров, расписания, списки клиентов или любые другие данные. Автоматизация импорта позволяет:

  • Избавиться от ручного копирования и ошибок;
  • Обеспечить актуальность контента на сайте;
  • Упростить работу с большими объемами данных;
  • Сэкономить время на обновления.

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

Подготовка Google Sheets и настройка доступа к API

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

1. Подготовка таблицы

Убедитесь, что в таблице есть заголовки столбцов, которые будут использоваться как ключи. Например:

  • name — название;
  • description — описание;
  • price — цена.

2. Публикация таблицы или настройка доступа

Для простого доступа можно опубликовать таблицу в формате CSV или JSON:

  • В Google Sheets выберите Файл > Опубликовать в интернете;
  • Выберите формат CSV или JSON (через сторонние сервисы для JSON);
  • Получите ссылку для доступа.

Для более защищенного варианта используйте Google Sheets API с OAuth 2.0, но это требует регистрации приложения в Google Cloud Console и настройки авторизации.

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

Рассмотрим простой пример, где мы получаем CSV и создаем записи кастомного типа product.

function wpteam_import_google_sheets_data() {
    $csv_url = 'https://docs.google.com/spreadsheets/d/e/ВАШ_ИД_ПУБЛИЧНОЙ_ТАБЛИЦЫ/pub?output=csv';
    $response = wp_remote_get($csv_url);

    if (is_wp_error($response)) {
        return;
    }

    $csv_data = wp_remote_retrieve_body($response);
    $lines = explode("\n", $csv_data);
    $headers = str_getcsv(array_shift($lines));

    foreach ($lines as $line) {
        if (empty(trim($line))) continue;
        $row = str_getcsv($line);
        $data = array_combine($headers, $row);

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

// Регистрируем кастомный тип записи
function wpteam_register_product_cpt() {
    register_post_type('product', array(
        'labels' => array(
            'name' => 'Товары',
            'singular_name' => 'Товар'
        ),
        'public' => true,
        'has_archive' => true,
        'show_in_rest' => true,
    ));
}
add_action('init', 'wpteam_register_product_cpt');

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

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

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

add_action('wpteam_import_event', 'wpteam_import_google_sheets_data');

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

Дополнительные рекомендации и безопасность

Для улучшения решения:

  • Используйте Google Sheets API с авторизацией для приватных данных;
  • Добавьте обработку ошибок и логирование для отладки;
  • Оптимизируйте обновление данных, чтобы не создавать дубликатов;
  • Кэшируйте результаты, если объем данных большой;
  • Используйте плагин Clearfy Pro для управления WP-Cron и оптимизации сайта.

Выводы

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

Как создать автоматический импорт данных из Excel в WordPress
18.12.2025
Как автоматически удалять неактивных пользователей в WordPress
27.02.2026
Как автоматизировать удаление спама в комментариях WordPress
22.12.2025
Как добавить автоматическое удаление неликвидных постов в WordPress
01.02.2026
Как изменить размер и оптимизировать изображения в WordPress без плагинов
05.12.2025

Возникли задачи по WP? Вы можете задать свой вопрос на FAQwp.com Либо обратиться к специалистам поддержки.