Зачем нужен автоматический импорт данных из Google Sheets в WordPress
Ведение данных в Google Sheets — удобный способ быстро обновлять информацию без постоянного захода в админку WordPress. Если у вас бизнес-сайт с таблицами, прайс-листами, списками клиентов или мероприятиями, автоматизация импорта позволяет регулярно получать свежие данные без ручной работы. Особенно полезно, когда контент обновляется часто и требуется минимизировать время на администрирование.
Автоматический импорт помогает:
- Обновлять содержимое сайта без ручного копирования и вставки;
- Сократить ошибки, связанные с ручным вводом данных;
- Интегрировать внешние данные в публикации, страницы или кастомные типы записей;
- Автоматизировать бизнес-процессы и повысить оперативность обновлений.
В этой статье мы разберём, как настроить автоматический импорт из Google Sheets в WordPress с помощью Google Sheets API и REST API WordPress, а также приведём пример кода для реализации процесса.
Подготовка Google Sheets и получение доступа к API
Первый шаг — подготовить Google Sheets и получить доступ к API, чтобы WordPress мог считывать данные.
Создание и настройка Google Sheets
Создайте таблицу в Google Sheets с нужными данными (например, список товаров, контактов, мероприятий). Переименуйте лист в понятное имя, например, Products.
Далее откройте доступ к API:
- Перейдите в Google Cloud Console.
- Создайте новый проект или выберите существующий.
- В разделе APIs & Services включите API Google Sheets API.
- Создайте учетные данные типа Service Account.
- Скачайте JSON с ключами и сохраните файл.
- В Google Sheets откройте доступ вашей сервисной учётной записи (email из JSON) с правом редактирования или просмотра, в зависимости от задачи.
Использование Google Sheets API в WordPress
Для взаимодействия с Google Sheets API на PHP рекомендуем использовать библиотеку google-api-php-client. Ее можно подключить через Composer, либо вручную.
Пример установки через Composer:
composer require google/apiclient:^2.0Если на вашем сервере Composer не доступен, можно загрузить библиотеку вручную с GitHub и подключить автозагрузчик.
Пример функции для импорта данных из Google Sheets в WordPress
Создадим функцию wpbusiness_import_google_sheets_data, которая будет подключаться к Google Sheets, читать данные и создавать записи в WordPress.
Пример кода:
function wpbusiness_import_google_sheets_data() {
require_once __DIR__ . '/vendor/autoload.php'; // путь к автозагрузчику google-api-php-client
// Путь к JSON с ключами сервисного аккаунта
$serviceAccountPath = __DIR__ . '/credentials.json';
// ID таблицы Google Sheets (из URL)
$spreadsheetId = 'ВАШ_SPREADSHEET_ID';
// Имя листа
$range = 'Products!A2:C'; // например, данные с 2-й строки, столбцы A-C
// Авторизация
$client = new Google_Client();
$client->setAuthConfig($serviceAccountPath);
$client->addScope(Google_Service_Sheets::SPREADSHEETS_READONLY);
$service = new Google_Service_Sheets($client);
try {
$response = $service->spreadsheets_values->get($spreadsheetId, $range);
$values = $response->getValues();
if (empty($values)) {
error_log('wpbusiness: Данные из Google Sheets отсутствуют');
return;
}
foreach ($values as $row) {
// Предполагаем, что столбцы: Название, Описание, Цена
$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) {
// Создаем кастомный тип записи product
$post_id = wp_insert_post([
'post_title' => $title,
'post_content' => $description,
'post_status' => 'publish',
'post_type' => 'product',
]);
if (!is_wp_error($post_id)) {
update_post_meta($post_id, '_price', $price);
}
} else {
// Обновляем существующую запись
wp_update_post([
'ID' => $existing->ID,
'post_content' => $description,
]);
update_post_meta($existing->ID, '_price', $price);
}
}
} catch (Exception $e) {
error_log('wpbusiness: Ошибка импорта из Google Sheets: ' . $e->getMessage());
}
}В данном примере мы создаём или обновляем кастомный тип записи product с метаданными цены.
Регистрация кастомного типа записи product
Чтобы пример работал, нужно зарегистрировать кастомный тип записи в WordPress. Добавьте этот код в файл темы или плагина:
function wpbusiness_register_post_type_product() {
$labels = [
'name' => 'Продукты',
'singular_name' => 'Продукт',
'menu_name' => 'Продукты',
'add_new_item' => 'Добавить новый продукт',
];
$args = [
'labels' => $labels,
'public' => true,
'has_archive' => true,
'supports' => ['title', 'editor'],
'show_in_rest' => true,
];
register_post_type('product', $args);
}
add_action('init', 'wpbusiness_register_post_type_product');Автоматизация процесса с использованием WP Cron
Чтобы импорт происходил автоматически, настроим WP Cron, который будет запускать функцию по расписанию.
Добавьте следующий код в ваш плагин или functions.php:
function wpbusiness_schedule_import() {
if (!wp_next_scheduled('wpbusiness_google_sheets_import_event')) {
wp_schedule_event(time(), 'hourly', 'wpbusiness_google_sheets_import_event');
}
}
add_action('wp', 'wpbusiness_schedule_import');
add_action('wpbusiness_google_sheets_import_event', 'wpbusiness_import_google_sheets_data');Этот код планирует импорт данных каждый час. Вы можете изменить интервал, добавив свой период через фильтр cron_schedules.
Примеры плагинов для импорта из Google Sheets в WordPress
Если не хотите писать код сами, можно использовать готовые решения:
- WP All Import + Google Sheets Addon — мощный плагин для импорта с поддержкой Google Sheets;
- Sheets2WP — простой плагин для импорта таблиц;
- Uncanny Automator — позволяет строить автоматизации между Google Sheets и WordPress.
Однако собственное решение с кодом даёт гибкость для бизнес-сайтов и позволяет интегрировать данные именно так, как нужно.
Преимущества собственного кода и интеграции с плагинами WPShop
Для бизнес-сайтов на WordPress важно иметь надёжную и адаптируемую систему импорта данных. Собственный код позволяет:
- Гибко обрабатывать данные из таблиц;
- Создавать кастомные типы записей и метаполя;
- Интегрировать импорт с другими бизнес-процессами и плагинами;
- Автоматизировать обновления без участия администратора.
Можно дополнительно использовать плагины из WPShop для расширения функционала, например, Clearfy Pro для оптимизации сайта или Expert Review для работы с отзывами, которые могут подтягиваться из Google Sheets.
Выводы и рекомендации
Автоматический импорт данных из Google Sheets в WordPress — мощный инструмент для бизнес-сайтов, который экономит время и снижает ошибки при обновлении данных. Рекомендуется:
- Правильно настроить Google Sheets API и доступ;
- Использовать библиотеку google-api-php-client для работы с API;
- Создать кастомные типы записей для удобного хранения данных;
- Настроить WP Cron для регулярного обновления;
- При необходимости использовать готовые плагины для ускорения внедрения.
Следуя этим рекомендациям, вы сможете построить надёжную и удобную систему автоматизации импорта данных из Google Sheets в WordPress.