Как создать автоматический импорт из Telegram в WordPress с помощью WPUnit

Telegram — популярная платформа для обмена сообщениями и контентом, и многие сайты на WordPress хотят автоматически публиковать посты из Telegram-каналов или групп. В этой статье мы разберём, как создать автоматический импорт сообщений из Telegram в WordPress с помощью библиотеки WPUnit, которая отлично подходит для построения кастомных решений автоматизации.

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

Если вы ведёте Telegram-канал, где публикуете новости, статьи или анонсы, автоматизация переноса этого контента на сайт позволит:

  • Экономить время на ручном копировании и форматировании;
  • Поддерживать актуальность сайта и привлекать трафик из поисковых систем;
  • Сохранять контент в удобном формате для SEO и дальнейшего редактирования;
  • Повысить вовлечённость аудитории, объединяя платформы.

WPUnit содержит мощные инструменты для работы с API и базой данных WordPress, что делает его отличным выбором для такой задачи.

Основные этапы создания автоматического импорта из Telegram

Разберём пошагово, как создать такой импорт.

1. Получение доступа к Telegram API

Для чтения сообщений из Telegram-канала нам нужен Telegram Bot и токен доступа:

  • Создайте бота через @BotFather в Telegram и получите токен.
  • Добавьте бота в нужный канал с правом читать сообщения.
  • Используйте Telegram Bot API для получения обновлений с сообщениями.

Подробнее про создание ботов и API можно почитать в официальной документации Telegram.

2. Настройка WPUnit для работы с Telegram API

Создадим плагин или функционал в теме, где подключим WPUnit и реализуем функцию для получения новых сообщений с помощью метода WPUnit HTTP-запроса.

function wpunit_get_telegram_updates($token, $offset = 0) {
    $url = "https://api.telegram.org/bot$token/getUpdates?offset=$offset";
    $response = wp_remote_get($url);
    if (is_wp_error($response)) {
        return false;
    }
    $body = wp_remote_retrieve_body($response);
    $data = json_decode($body, true);
    if (isset($data['ok']) && $data['ok']) {
        return $data['result'];
    }
    return false;
}

Эта функция возвращает массив новых сообщений, начиная с указанного смещения, чтобы не обрабатывать дубликаты.

3. Обработка и сохранение сообщений в WordPress

Теперь нам нужно преобразовать сообщения Telegram в посты WordPress. Для этого создадим функцию:

function wpunit_import_telegram_messages($messages) {
    foreach ($messages as $message) {
        if (!isset($message['message'])) {
            continue;
        }
        $text = $message['message']['text'] ?? '';
        $date = $message['message']['date'] ?? time();

        // Проверяем, есть ли уже такой пост, чтобы избежать дубликатов
        $existing = get_posts([
            'meta_key' => 'wpunit_telegram_message_id',
            'meta_value' => $message['update_id'],
            'post_type' => 'post',
            'post_status' => 'publish'
        ]);
        if (!empty($existing)) {
            continue;
        }

        // Создаём пост
        $post_id = wp_insert_post([
            'post_title' => wpunit_generate_title_from_text($text),
            'post_content' => esc_html($text),
            'post_status' => 'publish',
            'post_date' => date('Y-m-d H:i:s', $date),
        ]);

        if (!is_wp_error($post_id)) {
            update_post_meta($post_id, 'wpunit_telegram_message_id', $message['update_id']);
        }
    }
}

function wpunit_generate_title_from_text($text) {
    $title = mb_substr($text, 0, 40);
    return $title . (mb_strlen($text) > 40 ? '...' : '');
}

Таким образом, мы создаём уникальные посты с привязкой к ID сообщения Telegram для исключения повторного импорта.

Автоматизация с помощью WP-Cron и WPUnit Schedule Event

Чтобы импорт проходил регулярно, настроим задачу в WP-Cron, используя WPUnit Schedule Event:

function wpunit_schedule_telegram_import() {
    if (!wp_next_scheduled('wpunit_telegram_import_event')) {
        wp_schedule_event(time(), 'hourly', 'wpunit_telegram_import_event');
    }
}
add_action('wp', 'wpunit_schedule_telegram_import');

add_action('wpunit_telegram_import_event', 'wpunit_telegram_import_callback');

function wpunit_telegram_import_callback() {
    $token = 'ВАШ_TELEGRAM_BOT_TOKEN';
    $last_update_id = get_option('wpunit_telegram_last_update_id', 0);

    $updates = wpunit_get_telegram_updates($token, $last_update_id + 1);
    if ($updates) {
        wpunit_import_telegram_messages($updates);
        $max_update_id = max(array_column($updates, 'update_id'));
        update_option('wpunit_telegram_last_update_id', $max_update_id);
    }
}

Этот код запускает импорт каждую час, получая только новые сообщения и сохраняет последний обработанный update_id в опциях WordPress.

Советы и доработки

Для улучшения импорта и адаптации под задачи можно:

  • Добавить обработку мультимедийных вложений (фотографии, видео) из Telegram для более богатого контента;
  • Использовать кастомный тип записи для хранения Telegram-постов;
  • Поддерживать теги и категории, например, на основе хештегов из текста;
  • Добавить логирование и уведомления об ошибках для мониторинга работы импорта;
  • Интегрировать с плагином Clearfy Pro для оптимизации производительности.

Заключение

Автоматический импорт из Telegram в WordPress с использованием WPUnit — мощный инструмент для синхронизации контента и автоматизации публикаций. Благодаря простоте работы с API и гибкости WPUnit вы сможете быстро реализовать решение под свои задачи и масштабировать его в дальнейшем.

Если хотите готовые решения и поддержку, рекомендуем ознакомиться с плагинами на WPSHOP.RU, где регулярно появляются инструменты для автоматизации и интеграции WordPress.

Как автоматически отключать изображения в WordPress при отказах от загрузки
24.01.2026
Как использовать REST API для автоматического создания и обновления товаров WooCommerce
20.04.2026
Как создать автоматическое отключение плагинов при конфликтах в WordPress
04.04.2026
Как правильно отключить AJAX в WooCommerce без конфликтов
26.04.2026
Как создать автоматический импорт постов в WordPress с подробным разбором
15.03.2026