Если вы ведёте блог или информационный сайт на WordPress и при этом храните данные для постов в Google Sheets, автоматизация импорта контента значительно упростит вашу работу. В этой статье подробно разберём, как настроить автоматический импорт записей из Google Sheets в WordPress с помощью PHP и Google Sheets API, а также рассмотрим готовые плагины для облегчения задачи.
Зачем автоматизировать импорт из Google Sheets в WordPress
Google Sheets — удобный инструмент для коллективного редактирования и хранения данных. Иногда контент генерируется вне WordPress, например, копирайтерами или маркетологами, и хранится именно в таблицах. Ручной перенос статей — рутинная и ошибка-опасная задача. Автоматизация позволяет:
- Экономить время на публикацию новых материалов.
- Обеспечивать своевременное обновление контента.
- Избегать ошибок при копировании и форматировании.
- Интегрировать WordPress с внешними системами и сервисами.
Для автоматизации нам понадобится связать Google Sheets и WordPress через API.
Создание проекта и получение доступа к Google Sheets API
Первым делом нужно получить учетные данные для доступа к Google Sheets API:
- Перейдите в Google Cloud Console: https://console.cloud.google.com/apis/dashboard.
- Создайте новый проект или выберите существующий.
- В разделе «Библиотека» найдите и включите Google Sheets API.
- Перейдите в «Учётные данные» и создайте сервисный аккаунт.
- Создайте JSON-ключ для сервисного аккаунта и сохраните файл.
- В Google Sheets предоставьте доступ на редактирование сервисному аккаунту, используя email из JSON-файла.
Эти действия позволят вашему сайту обращаться к таблице с данными.
Пример функции импорта постов из Google Sheets в WordPress
Ниже пример функции wpdirect_import_posts_from_google_sheets(), которая использует Google API Client для PHP, читает строки из таблицы и создает записи в WordPress:
require_once 'path-to-google-api-php-client/vendor/autoload.php';
function wpdirect_import_posts_from_google_sheets() {
// ID таблицы и диапазон
$spreadsheetId = 'ВАШ_ID_ТАБЛИЦЫ';
$range = 'Лист1!A2:C100'; // Предполагается: колонка A - заголовок, B - контент, C - статус
// Настройка клиента
$client = new Google_Client();
$client->setApplicationName('WPDirect Google Sheets Import');
$client->setScopes(Google_Service_Sheets::SPREADSHEETS_READONLY);
$client->setAuthConfig('/path/to/credentials.json');
$service = new Google_Service_Sheets($client);
// Получаем данные
$response = $service->spreadsheets_values->get($spreadsheetId, $range);
$values = $response->getValues();
if (empty($values)) {
return 'Нет данных для импорта';
}
foreach ($values as $row) {
$title = $row[0] ?? '';
$content = $row[1] ?? '';
$status = $row[2] ?? 'draft';
if (empty($title) || empty($content)) {
continue; // пропускаем пустые
}
// Проверяем, существует ли уже пост с таким заголовком
$existing = get_page_by_title($title, OBJECT, 'post');
if ($existing) {
continue; // не создаём дубликат
}
// Создаём пост
$post_data = [
'post_title' => $title,
'post_content' => $content,
'post_status' => $status,
'post_author' => 1,
'post_type' => 'post',
];
wp_insert_post($post_data);
}
return 'Импорт завершен';
}Эту функцию можно запускать вручную или через CRON для регулярного обновления.
Настройка регулярного запуска импорта через WP-Cron
Чтобы импорт происходил автоматически, добавим задачу в WP-Cron. В functions.php темы или в собственном плагине добавьте:
if (!wp_next_scheduled('wpdirect_google_sheets_import_event')) {
wp_schedule_event(time(), 'hourly', 'wpdirect_google_sheets_import_event');
}
add_action('wpdirect_google_sheets_import_event', 'wpdirect_import_posts_from_google_sheets');Теперь функция будет запускаться каждый час. Интервал можно изменить на 'twicedaily' или 'daily' в зависимости от нужд.
Использование готовых плагинов для импорта из Google Sheets
Если программирование не входит в ваши планы, рассмотрите плагины, которые могут помочь:
- WP All Import + Google Sheets Addon — платный плагин с обширными возможностями для импорта.
- Sheets to WP Table Live Sync — для синхронизации таблиц, но можно адаптировать под импорт постов.
- Inline Google Spreadsheet Viewer — позволяет выводить таблицы, но не импортировать в посты.
Для более глубокой автоматизации можно использовать сервисы как Zapier или Integromat (Make), которые интегрируют Google Sheets и WordPress без написания кода.
Рекомендации по безопасности и производительности
При работе с API и автоматизацией стоит учитывать несколько важных моментов:
- Не храните ключи доступа в общедоступных местах.
- Ограничьте права сервисного аккаунта только чтением таблиц.
- Проверяйте данные из таблицы перед добавлением в базу, чтобы избежать дублирования и ошибок.
- Если данных много, разбивайте импорт на порции для снижения нагрузки на сервер.
- Логируйте результаты работы для отладки и мониторинга.
Заключение
Автоматический импорт постов из Google Sheets в WordPress — практичное решение для сайтов с внешним источником контента. Используя Google Sheets API и собственные функции WordPress, можно создать надежную и масштабируемую систему обновления материалов. Для упрощения задачи подойдут и готовые плагины, а для регулярного запуска стоит использовать WP-Cron.
Для расширения функционала и удобства управления отзывами можно рассмотреть плагин WPRemark, который поможет собирать и показывать отзывы пользователей после импорта контента.