Автоматизация импорта данных из Google Sheets в WordPress — задача, с которой сталкиваются многие разработчики и владельцы сайтов. Часто данные обновляются в таблицах, и вручную переносить их в WordPress неудобно и долго. В этой статье разберём, как настроить автоматический импорт с помощью Google Sheets API, а также рассмотрим популярные плагины и примеры кода для реализации.
Почему стоит использовать автоматический импорт из Google Sheets в WordPress
Google Sheets — удобный инструмент для хранения и совместного редактирования данных. Если у вас есть, например, каталог товаров, расписание мероприятий или списки задач, обновлять их в таблице проще, чем в админке сайта. Автоматический импорт позволяет:
- Обеспечить актуальность данных на сайте без ручного копирования.
- Снизить вероятность ошибок при переносе информации.
- Экономить время на обновление контента.
Кроме того, вы сможете интегрировать данные с кастомными типами записей WordPress, что расширит функциональность сайта.
Обзор плагинов для импорта из Google Sheets
Существуют плагины, которые упрощают интеграцию Google Sheets и WordPress. Рассмотрим несколько из них.
1. WP All Import + Google Sheets Addon
Плагин WP All Import позволяет импортировать данные из разных источников, включая Google Sheets через дополнения. Он подходит для сложных структур и больших объемов данных.
Преимущества:
- Гибкая настройка сопоставления полей.
- Поддержка кастомных типов записей и таксономий.
- Автоматизация по расписанию через WP-Cron.
2. Inline Google Spreadsheet Viewer
Этот бесплатный плагин позволяет встраивать таблицы Google Sheets на страницы сайта с помощью шорткодов. Он хорошо подходит для отображения данных, но не для сложного импорта в базу WordPress.
3. WPTable Reloaded + Google Sheets
Если вы работаете с таблицами, можно использовать плагин для таблиц с импортом данных из Google Sheets. Подходит для визуального отображения, но не для создания кастомных записей.
Реализация автоматического импорта с помощью Google Sheets API и кода
Для гибкой и точной настройки автоматического импорта можно использовать Google Sheets API и писать собственный код. Ниже приведено пошаговое руководство.
Шаг 1. Создайте проект в Google Cloud и настройте API
Перейдите в Google Cloud Console, создайте новый проект и активируйте Google Sheets API.
Создайте учетные данные типа Service Account и скачайте JSON-файл с ключом. Добавьте этот адрес электронной почты в доступ к вашей таблице Google Sheets с правом просмотра.
Шаг 2. Установите библиотеку Google API Client для PHP
Если у вас на сервере установлен Composer, выполните в папке темы или плагина команду:
composer require google/apiclient:^2.0Если Composer недоступен, можно скачать библиотеку вручную, но это сложнее.
Шаг 3. Создайте функцию импорта в WordPress
Ниже пример функции wptasks_import_google_sheets_data(), которая подключается к Google Sheets, получает данные и импортирует их в кастомный тип записи task.
function wptasks_import_google_sheets_data() {
require_once __DIR__ . '/vendor/autoload.php'; // путь к автозагрузчику
$client = new Google_Client();
$client->setApplicationName('WPTasks Import');
$client->setScopes(Google_Service_Sheets::SPREADSHEETS_READONLY);
$client->setAuthConfig(__DIR__ . '/credentials.json'); // путь к JSON ключу
$service = new Google_Service_Sheets($client);
$spreadsheetId = 'ваш_ID_таблицы';
$range = 'Лист1!A2:C100'; // диапазон с данными
$response = $service->spreadsheets_values->get($spreadsheetId, $range);
$values = $response->getValues();
if (empty($values)) {
return;
}
foreach ($values as $row) {
$title = sanitize_text_field($row[0]);
$description = sanitize_textarea_field($row[1]);
$due_date = sanitize_text_field($row[2]);
// Проверяем, существует ли уже запись с таким названием
$existing = get_page_by_title($title, OBJECT, 'task');
if ($existing) {
// Обновляем запись
wp_update_post([
'ID' => $existing->ID,
'post_content' => $description
]);
update_post_meta($existing->ID, 'due_date', $due_date);
} else {
// Создаем новую запись
$post_id = wp_insert_post([
'post_title' => $title,
'post_content' => $description,
'post_status' => 'publish',
'post_type' => 'task'
]);
if ($post_id) {
update_post_meta($post_id, 'due_date', $due_date);
}
}
}
}Обратите внимание, что функция использует кастомный тип записи task, который нужно предварительно зарегистрировать через register_post_type.
Шаг 4. Запуск импорта по расписанию
Чтобы импорт выполнялся автоматически, добавьте задачу в WP-Cron:
function wptasks_schedule_import() {
if (!wp_next_scheduled('wptasks_google_sheets_import_event')) {
wp_schedule_event(time(), 'hourly', 'wptasks_google_sheets_import_event');
}
}
add_action('wp', 'wptasks_schedule_import');
add_action('wptasks_google_sheets_import_event', 'wptasks_import_google_sheets_data');Это запустит функцию импорта каждый час. Можно изменить частоту на нужную вам.
Регистрация кастомного типа записи «task» для хранения данных
Пример регистрации типа записи для задач:
function wptasks_register_task_post_type() {
$labels = [
'name' => 'Задачи',
'singular_name' => 'Задача',
'add_new' => 'Добавить задачу',
'add_new_item' => 'Добавить новую задачу',
'edit_item' => 'Редактировать задачу',
'new_item' => 'Новая задача',
'view_item' => 'Просмотреть задачу',
'search_items' => 'Поиск задач',
'not_found' => 'Задачи не найдены',
'not_found_in_trash' => 'Задачи не найдены в корзине'
];
$args = [
'labels' => $labels,
'public' => true,
'has_archive' => true,
'supports' => ['title', 'editor'],
'show_in_rest' => true
];
register_post_type('task', $args);
}
add_action('init', 'wptasks_register_task_post_type');Это позволит удобно работать с задачами и отображать их на сайте.
Советы по безопасности и производительности при импорте
При работе с Google Sheets API важно хранить ключи доступа в защищённом месте, например, вне публичной папки сайта. Не забудьте ограничить права доступа к таблице.
Если объем данных большой, выполняйте импорт частями, чтобы не превышать лимиты по времени выполнения скриптов.
Для сложных проектов рекомендуем использовать очереди задач и фоновые процессы, например, через плагин WPTasks, который облегчает управление задачами и их автоматизацию.
Выводы и полезные ссылки
Автоматический импорт данных из Google Sheets в WordPress позволяет поддерживать актуальность контента, экономит время и снижает риск ошибок. Вы можете использовать готовые плагины или написать собственный код с использованием Google Sheets API.
Полезные ресурсы: