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

Автоматизация наполнения контентом — важная задача для многих сайтов на WordPress. Если у вас есть таблица в Google Sheets с готовыми статьями или данными, можно настроить автоматический импорт этих данных в виде постов WordPress. Это особенно удобно для сайтов с большим объемом обновлений или агрегаторов контента.

Почему автоматический импорт из Google Sheets полезен для WordPress

Google Sheets — удобный инструмент для совместной работы с контентом. Редакторы и контент-менеджеры могут вносить правки, а разработчик настраивает синхронизацию с сайтом. Это устраняет необходимость ручного копирования и вставки, снижает ошибки и ускоряет процесс публикации.

Ключевые преимущества:

  • Централизованное управление контентом в Google Sheets
  • Автоматическое создание или обновление постов в WordPress
  • Гибкость в форматировании и добавлении метаданных
  • Экономия времени и ресурсов

Обзор плагинов для импорта из Google Sheets

Существуют плагины, облегчающие импорт, но часто они платные или слишком универсальные. Для точечного решения можно использовать плагины с API Google и кастомным кодом.

Рассмотрим три варианта:

1. WP All Import + Google Sheets Add-on

Платное решение с мощным функционалом и визуальным редактором. Позволяет настроить импорт с регулярностью, поддерживает сложные поля и пользовательские типы записей.

2. Google Sheets API + пользовательский плагин

Самый гибкий способ — написать собственный скрипт, который через Google Sheets API получает данные и создает посты. Это требует навыков PHP и работы с API.

3. Использование плагина WPRemark для обработки комментариев и пользовательского контента

Хотя WPRemark больше для комментариев, его можно адаптировать для частичной автоматизации, например, для импорта пользовательских отзывов из Google Sheets.

Как настроить автоматический импорт через Google Sheets API и собственный плагин

Рассмотрим пример создания базового плагина для импорта постов из Google Sheets с использованием Google Sheets API v4.

Шаг 1. Создайте проект в Google Cloud Console и получите ключ API

Перейдите в Google Cloud Console, создайте проект, активируйте API Google Sheets и получите credentials JSON для доступа.

Шаг 2. Подготовьте таблицу Google Sheets

Организуйте таблицу так, чтобы каждая строка представляла отдельный пост, например:

  • Колонка A: Заголовок
  • Колонка B: Содержание
  • Колонка C: Категория
  • Колонка D: Теги (через запятую)

Шаг 3. Создайте плагин WordPress для импорта

Создайте папку wp-content/plugins/wordpresses-google-sheets-importer и файл wordpresses-google-sheets-importer.php с таким кодом:

<?php
/**
 * Plugin Name: WordPresses Google Sheets Importer
 * Description: Импорт постов из Google Sheets
 * Version: 1.0
 * Author: WordPresses.ru
 */

add_action('admin_menu', 'wordpresses_add_importer_page');
function wordpresses_add_importer_page() {
    add_submenu_page('tools.php', 'Импорт из Google Sheets', 'Импорт из Sheets', 'manage_options', 'wordpresses-google-sheets-importer', 'wordpresses_importer_page');
}

function wordpresses_importer_page() {
    if (!current_user_can('manage_options')) {
        wp_die('Доступ запрещен');
    }

    if (isset($_POST['import'])) {
        wordpresses_google_sheets_import();
    }

    echo '<div class="wrap"><h1>Импорт постов из Google Sheets</h1>';
    echo '<form method="post"><input type="submit" name="import" class="button button-primary" value="Запустить импорт" /></form></div>';
}

function wordpresses_google_sheets_import() {
    $api_key = 'ВАШ_API_КЛЮЧ';
    $spreadsheet_id = 'ID_ВАШЕЙ_ТАБЛИЦЫ';
    $range = 'Лист1!A2:D'; // диапазон без заголовков

    $url = "https://sheets.googleapis.com/v4/spreadsheets/{$spreadsheet_id}/values/{$range}?key={$api_key}";

    $response = wp_remote_get($url);

    if (is_wp_error($response)) {
        echo '<p style="color:red;">Ошибка запроса к Google Sheets: ' . esc_html($response->get_error_message()) . '</p>';
        return;
    }

    $body = wp_remote_retrieve_body($response);
    $data = json_decode($body, true);

    if (empty($data['values'])) {
        echo '<p>Нет данных для импорта.</p>';
        return;
    }

    $imported = 0;

    foreach ($data['values'] as $row) {
        $title = isset($row[0]) ? sanitize_text_field($row[0]) : '';
        $content = isset($row[1]) ? wp_kses_post($row[1]) : '';
        $category_name = isset($row[2]) ? sanitize_text_field($row[2]) : '';
        $tags = isset($row[3]) ? explode(',', $row[3]) : [];

        if (!$title || !$content) {
            continue; // пропускаем пустые строки
        }

        // Получаем ID категории или создаем
        $category_id = 0;
        if ($category_name) {
            $cat = get_term_by('name', $category_name, 'category');
            if (!$cat) {
                $cat = wp_insert_term($category_name, 'category');
            }
            $category_id = is_array($cat) && !is_wp_error($cat) ? $cat['term_id'] : 0;
        }

        // Создаем пост
        $post_id = wp_insert_post([
            'post_title'   => $title,
            'post_content' => $content,
            'post_status'  => 'publish',
            'post_author'  => get_current_user_id(),
            'post_category'=> $category_id ? [$category_id] : [],
        ]);

        if (is_wp_error($post_id)) {
            continue;
        }

        // Добавляем теги
        if ($tags) {
            $tags = array_map('sanitize_text_field', $tags);
            wp_set_post_tags($post_id, $tags);
        }

        $imported++;
    }

    echo '<p>Импортировано постов: ' . $imported . '</p>';
}
?>

Шаг 4. Запуск импорта через админку

После активации плагина в меню "Инструменты" появится пункт "Импорт из Google Sheets". По кнопке "Запустить импорт" данные из таблицы будут загружены и созданы новые посты.

Дополнительные советы и расширения импорта

Обработка обновлений и дубликатов

Для предотвращения дублирования можно сохранять в мета-поле ID строки таблицы или уникальный идентификатор и перед импортом проверять, существует ли уже такой пост.

Использование WP-Cron для регулярного обновления

Чтобы импорт происходил автоматически, добавьте wp_schedule_event с нужным интервалом и вызовом функции импорта. Так сайт будет постоянно обновляться без вашего участия.

Импорт пользовательских полей и кастомных типов записей

Если в таблице есть дополнительные данные, можно расширить функцию импорта, используя update_post_meta для добавления метаданных или wp_insert_post с параметом 'post_type' для создания кастомных типов записей.

Заключение

Автоматический импорт постов из Google Sheets в WordPress — практичное решение для упрощения работы с контентом. Используя Google Sheets API и собственный плагин, можно гибко настраивать процесс, расширять функционал и экономить время. Если хотите расширить возможности, обратите внимание на готовые решения, например, WPRemark, который помогает автоматизировать обработку пользовательского контента.

Как создать динамический список постов с фильтром по таксономии в WordPress
13.01.2026
Автоматическое удаление старых записей в WordPress через wp_cron
16.04.2026
Как создать глобальный кеш для REST API и ускорить запросы
05.12.2025
Как создать собственный вид записи в WordPress для специфических типов данных
15.12.2025
Как удалить неиспользуемые шорткоды в WordPress без плагинов
07.04.2026