Как добавить обсуждения в REST API WordPress с поддержкой GPT

Понимание задачи: расширяем REST API WordPress для обсуждений

Стандартный REST API WordPress предоставляет базовые методы для работы с комментариями, однако они не поддерживают диалоговую структуру обсуждений, где комментарии могут иметь вложенные ответы и улучшенную навигацию. В этой статье мы рассмотрим, как расширить REST API для поддержки полноценной структуры обсуждений с использованием GPT для автоматизации модерации и подсказок при ответах.

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

Расширение REST API: добавляем вложенные комментарии и метаданные

По умолчанию WordPress не предоставляет в REST API вложенную структуру комментариев. Чтобы это исправить, создадим кастомный эндпоинт, который вернёт комментарии вместе с их вложенными ответами.

Для начала зарегистрируем новый маршрут в REST API, который будет возвращать обсуждения с вложенными комментариями:

add_action('rest_api_init', function () {
    register_rest_route('wpgpt/v1', '/discussions/(?P<post_id>\d+)', [
        'methods' => 'GET',
        'callback' => 'wpgpt_get_discussions',
        'args' => [
            'post_id' => [
                'validate_callback' => 'is_numeric',
            ],
        ],
    ]);
});

Затем реализуем функцию wpgpt_get_discussions, которая будет получать комментарии с их дочерними:

function wpgpt_get_discussions($request) {
    $post_id = (int) $request['post_id'];
    $comments = get_comments([
        'post_id' => $post_id,
        'parent' => 0,
        'status' => 'approve',
        'orderby' => 'comment_date_gmt',
        'order' => 'ASC'
    ]);

    $result = [];
    foreach ($comments as $comment) {
        $result[] = wpgpt_prepare_comment_tree($comment);
    }
    return rest_ensure_response($result);
}

function wpgpt_prepare_comment_tree($comment) {
    $data = [
        'id' => $comment->comment_ID,
        'author' => $comment->comment_author,
        'content' => $comment->comment_content,
        'date' => $comment->comment_date_gmt,
        'children' => []
    ];

    $children = get_comments([
        'parent' => $comment->comment_ID,
        'status' => 'approve',
        'orderby' => 'comment_date_gmt',
        'order' => 'ASC'
    ]);

    foreach ($children as $child) {
        $data['children'][] = wpgpt_prepare_comment_tree($child);
    }

    return $data;
}

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

Интеграция GPT: помощь в модерации и генерации ответов

Используя возможности GPT, можно автоматизировать процесс модерации комментариев и даже предлагать пользователям подсказки для ответов, улучшая вовлечённость.

Для примера реализуем простую функцию, которая отправляет комментарий на проверку в GPT API, чтобы выявить нежелательный контент и предложить исправления.

function wpgpt_moderate_comment_with_gpt($comment_content) {
    $api_key = 'ВАШ_API_КЛЮЧ';
    $endpoint = 'https://api.openai.com/v1/chat/completions';

    $data = [
        'model' => 'gpt-4',
        'messages' => [
            [
                'role' => 'system',
                'content' => 'Проверь комментарий на наличие оскорблений, спама и токсичности. Предложи исправленный вариант без нарушений.'
            ],
            [
                'role' => 'user',
                'content' => $comment_content
            ]
        ]
    ];

    $args = [
        'headers' => [
            'Content-Type' => 'application/json',
            'Authorization' => 'Bearer ' . $api_key,
        ],
        'body' => json_encode($data),
        'timeout' => 15,
    ];

    $response = wp_remote_post($endpoint, $args);
    if (is_wp_error($response)) {
        return null;
    }

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

    if (!empty($result['choices'][0]['message']['content'])) {
        return $result['choices'][0]['message']['content'];
    }

    return null;
}

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

Пример добавления фильтра для проверки комментариев

Добавим хук, который будет проверять комментарии перед публикацией:

add_filter('preprocess_comment', function($commentdata) {
    $corrected_content = wpgpt_moderate_comment_with_gpt($commentdata['comment_content']);
    if ($corrected_content !== null) {
        $commentdata['comment_content'] = $corrected_content;
    }
    return $commentdata;
});

Практические советы по реализации и оптимизации

Чтобы обеспечить стабильную работу и удобство, рекомендуем:

  • Кэшировать результаты запроса REST API с обсуждениями, чтобы снизить нагрузку на сервер.
  • Ограничивать частоту вызовов API GPT, чтобы не превысить лимиты и не увеличить задержки.
  • Реализовать пользовательский интерфейс с ленивой загрузкой вложенных комментариев — это улучшит производительность.
  • Использовать готовые плагины, например Clearfy Pro для оптимизации REST API и безопасности.

Таким образом, вы сможете создать продвинутую систему обсуждений на базе WordPress, которая будет не просто отображать комментарии, а создавать удобный и интеллектуальный диалог, используя возможности GPT и расширенного REST API.

Как создать автоматический генератор ответов в комментариях WordPress с помощью WPGPT
13.03.2026
Как создать автоматический генератор контекстных сниппетов в WordPress с помощью WPGPT
11.04.2026
Как создать свой шорткод в WordPress с поддержкой параметров
25.11.2025
Как автоматизировать оценку качества контента в WordPress с помощью GPT
04.02.2026
Автоматическое изменение стоимости доставки в WooCommerce при изменении состава заказа
04.06.2026