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

Если вы ведёте блог или информационный сайт на 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:

  1. Перейдите в Google Cloud Console: https://console.cloud.google.com/apis/dashboard.
  2. Создайте новый проект или выберите существующий.
  3. В разделе «Библиотека» найдите и включите Google Sheets API.
  4. Перейдите в «Учётные данные» и создайте сервисный аккаунт.
  5. Создайте JSON-ключ для сервисного аккаунта и сохраните файл.
  6. В 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, который поможет собирать и показывать отзывы пользователей после импорта контента.

Как настроить отключение автоматических обновлений в WordPress
01.03.2026
Как автоматически удалять старые редактированные посты в WordPress
08.03.2026
Оптимизация работы плагинов WordPress: как ускорить сайт и уменьшить нагрузку
02.01.2026
Как избежать проблем с отключением плагинов в WordPress
05.03.2026
Как создать собственный виджет WordPress
28.11.2025