Автоматический импорт постов из Telegram в WordPress

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

Преимущества автоматического импорта из Telegram в WordPress

Автоматизация импорта позволяет:

  • Экономить время на ручном копировании и публикации контента.
  • Поддерживать сайт всегда актуальным с новыми постами.
  • Расширять аудиторию за счёт дублирования контента на разных площадках.

Рассмотрим, как это можно реализовать технически.

Как работает Telegram Bot API для получения сообщений канала

Для импорта сообщений нужен Telegram-бот с доступом к нужному каналу. Бот должен быть добавлен в канал с ролью администратора, чтобы иметь доступ к сообщениям.

Telegram Bot API позволяет получать обновления через метод getUpdates, но для каналов это ограничено. Лучше использовать Webhook или Telegram API через библиотеку Telethon или MadelineProto для доступа к сообщениям канала.

Однако для большинства задач подходит создание бота и получение новых сообщений через Webhook, который передаёт данные в WordPress.

Создание Telegram-бота

1. Откройте Telegram и найдите пользователя @BotFather.

2. Создайте нового бота командой /newbot.

3. Получите токен API бота.

4. Добавьте бота в ваш канал с правами администратора.

Настройка Webhook для передачи сообщений в WordPress

Webhook — это URL на вашем сайте, куда Telegram будет отправлять обновления с сообщениями. В WordPress можно создать кастомный endpoint для приёма таких запросов.

Создание кастомного REST API endpoint в WordPress для приёма сообщений Telegram

Добавьте следующий код в файл functions.php вашей темы или в кастомный плагин:

add_action('rest_api_init', function () {
    register_rest_route('wpelement/v1', '/telegram/', array(
        'methods' => 'POST',
        'callback' => 'wpelement_telegram_import',
        'permission_callback' => '__return_true',
    ));
});

function wpelement_telegram_import(WP_REST_Request $request) {
    $data = $request->get_json_params();
    if (empty($data['message']['text'])) {
        return new WP_REST_Response('No message text', 400);
    }

    $message = sanitize_text_field($data['message']['text']);
    $chat_id = $data['message']['chat']['id'];
    $message_id = $data['message']['message_id'];

    // Проверка на дублирование
    $existing = get_posts(array(
        'meta_key' => 'telegram_message_id',
        'meta_value' => $message_id,
        'post_type' => 'post',
        'post_status' => 'publish'
    ));

    if (!empty($existing)) {
        return new WP_REST_Response('Message already imported', 200);
    }

    // Создаем новый пост
    $post_id = wp_insert_post(array(
        'post_title' => wp_trim_words($message, 10, '...'),
        'post_content' => $message,
        'post_status' => 'publish',
        'post_author' => 1, // ID автора
    ));

    if (is_wp_error($post_id)) {
        return new WP_REST_Response('Error creating post', 500);
    }

    // Сохраняем ID сообщения Telegram чтобы избежать дубликатов
    update_post_meta($post_id, 'telegram_message_id', $message_id);

    return new WP_REST_Response('Post created', 201);
}

Этот код регистрирует REST endpoint /wp-json/wpelement/v1/telegram/, который принимает POST-запросы от Telegram с сообщениями. В нем происходит проверка на дублирование по ID сообщения и создание нового поста с содержимым сообщения.

Настройка Webhook Telegram для отправки обновлений на WordPress

Для настройки Webhook используйте следующий запрос к Telegram API (замените {BOT_TOKEN} и {YOUR_DOMAIN}):

https://api.telegram.org/bot{BOT_TOKEN}/setWebhook?url=https://{YOUR_DOMAIN}/wp-json/wpelement/v1/telegram/

После успешной настройки Telegram будет отправлять все новые сообщения в канал на ваш WordPress-сайт.

Использование готовых плагинов для импорта из Telegram

Если хочется готовое решение, можно использовать плагины, например:

  • Telegram for WP — поддерживает отправку уведомлений и импорт постов.
  • WPCommunity — комплексный плагин с интеграцией Telegram и форумом.

Однако кастомный подход с REST API даёт максимальную гибкость и контроль.

Обработка мультимедийного контента из Telegram

Часто в Telegram публикуют не только текст, но и изображения, видео и документы. Чтобы импортировать их, надо расширить код для сохранения файлов в медиатеку WordPress.

Пример обработки фото:

if (!empty($data['message']['photo'])) {
    $photos = $data['message']['photo'];
    $file_id = end($photos)['file_id'];

    // Запрос к Telegram API для получения ссылки на файл
    $file_info = wpelement_telegram_get_file($file_id, $bot_token);
    if ($file_info) {
        $file_url = 'https://api.telegram.org/file/bot' . $bot_token . '/' . $file_info['file_path'];
        $attachment_id = wpelement_upload_image_from_url($file_url);
        if ($attachment_id) {
            set_post_thumbnail($post_id, $attachment_id);
        }
    }
}

Функции wpelement_telegram_get_file и wpelement_upload_image_from_url можно реализовать через cURL и функции WordPress для загрузки файлов.

Заключение по теме импорта из Telegram

Автоматический импорт из Telegram в WordPress — мощный инструмент для дублирования и распространения контента. Используя Telegram Bot API и кастомные REST endpoints, можно настроить стабильный и гибкий процесс импорта с поддержкой мультимедиа и проверкой дубликатов.

Рекомендуется внимательно тестировать все этапы и ограничивать доступ к REST endpoint для безопасности.

Оптимизация пользовательских полей для вариативных товаров в WooCommerce на WordPress
02.03.2026
Как удалить пустые категории и таксономии в WordPress с помощью кода
08.04.2026
Автоматическое удаление товаров WooCommerce при отсутствии на складе
26.04.2026
Как автоматически удалять старые изображения в WordPress по расписанию
13.02.2026
Как удалить постоянно заблокированные IP-адреса в WordPress
14.04.2026