Интеграция Google Sheets с WordPress является отличным решением для автоматического обновления контента на сайте без ручного редактирования. Такая схема особенно полезна для сайтов с часто изменяющейся информацией: прайс-листами, расписаниями, каталогами и т.д.
Подготовка Google Sheets для импорта
Для начала необходимо подготовить таблицу в Google Sheets. Важно, чтобы данные были структурированы и понятны: первая строка — заголовки столбцов, последующие — записи. Например, таблица с товарами может содержать колонки: Название, Описание, Цена, Изображение.
Далее нужно сделать таблицу доступной для чтения через API или по ссылке. Для простого варианта подойдёт публикация таблицы в интернете с экспортом в формате CSV или JSON.
Использование Google Sheets API для получения данных
Самый гибкий способ — использовать Google Sheets API. Для этого необходимо создать проект в Google Cloud Console, включить API и получить ключ доступа.
После настройки доступа можно написать функцию, которая будет получать данные из таблицы. Ниже пример функции wpelement_get_google_sheet_data(), которая возвращает массив записей из таблицы по её ID:
function wpelement_get_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 [];
}
$body = wp_remote_retrieve_body($response);
$data = json_decode($body, true);
if (empty($data['values'])) {
return [];
}
$rows = $data['values'];
$headers = array_shift($rows);
$result = [];
foreach ($rows as $row) {
$item = [];
foreach ($headers as $index => $header) {
$item[$header] = isset($row[$index]) ? $row[$index] : '';
}
$result[] = $item;
}
return $result;
}
Автоматический импорт данных в WordPress
После получения данных из Google Sheets их нужно импортировать в WordPress. В зависимости от задачи — это могут быть кастомные записи, метаполя или обновление настроек.
Пример: импорт списка товаров в кастомный тип записи product. Для каждой строки таблицы создаём или обновляем запись:
function wpelement_import_products_from_sheet() {
$spreadsheet_id = 'ВАШ_SPREADSHEET_ID';
$range = 'Лист1!A:D';
$api_key = 'ВАШ_API_KEY';
$items = wpelement_get_google_sheet_data($spreadsheet_id, $range, $api_key);
if (empty($items)) {
return;
}
foreach ($items as $item) {
$existing = get_page_by_title($item['Название'], OBJECT, 'product');
$post_data = [
'post_title' => wp_strip_all_tags($item['Название']),
'post_content' => $item['Описание'],
'post_status' => 'publish',
'post_type' => 'product',
];
if ($existing) {
$post_data['ID'] = $existing->ID;
$post_id = wp_update_post($post_data);
} else {
$post_id = wp_insert_post($post_data);
}
if (!is_wp_error($post_id)) {
update_post_meta($post_id, '_price', sanitize_text_field($item['Цена']));
update_post_meta($post_id, '_image_url', esc_url_raw($item['Изображение']));
}
}
}
Вы можете запускать функцию wpelement_import_products_from_sheet() вручную или настроить её выполнение по расписанию через WP-Cron, например, раз в час.
Настройка WP-Cron для регулярного обновления данных
Чтобы обновлять данные автоматически, добавим планировщик задач:
add_action('wpelement_hourly_import', 'wpelement_import_products_from_sheet');
if (!wp_next_scheduled('wpelement_hourly_import')) {
wp_schedule_event(time(), 'hourly', 'wpelement_hourly_import');
}
Этот код создаст событие, которое будет запускать импорт каждый час. Не забудьте добавить очистку планировщика при деактивации плагина или темы:
function wpelement_deactivate() {
$timestamp = wp_next_scheduled('wpelement_hourly_import');
if ($timestamp) {
wp_unschedule_event($timestamp, 'wpelement_hourly_import');
}
}
Полезные плагины для интеграции Google Sheets и WordPress
Если хочется упростить задачу и минимизировать кодинг, можно использовать готовые плагины:
- WP All Import — мощный инструмент для импорта данных из CSV и XML, можно экспортировать Google Sheets в CSV и подключать.
- Sheets to WP Table Live Sync — плагин для живой синхронизации таблиц Google Sheets с таблицами на сайте.
- WP Webhooks — с помощью вебхуков интегрируется множество сервисов, включая Google Sheets через сторонние сервисы.
Для примера, плагин WPGPT на базе AI можно использовать для обработки и генерации описаний товаров на основе данных из Google Sheets.
Резюме и рекомендации
Автоматический импорт из Google Sheets позволяет значительно упростить обновление контента на сайте и избежать ошибок ручного ввода. Важно грамотно организовать структуру таблицы, использовать API для актуальных данных, а также грамотно настроить расписание импорта. При необходимости можно комбинировать кастомные решения с готовыми плагинами.
Если вы хотите расширить функциональность, рекомендуем рассмотреть Clearfy Pro — плагин для оптимизации и управления сайтом, который поможет поддерживать WordPress в отличном состоянии при активном использовании автоматического импорта.