Интеграция AI в WordPress через AI Gateway: сниппет на PHP
Как подключить AI к WordPress без сторонних плагинов: сниппет на PHP с wp_remote_post к API AI Gateway, автогенерация описаний товаров и записей, ключ в wp-config или окружении.
Добавить AI в WordPress можно без тяжёлых плагинов — коротким сниппетом на PHP. Встроенная функция wp_remote_post отправляет запрос к OpenAI-совместимому API AI Gateway, а ответ используется для генерации описаний товаров, аннотаций записей или ответов на комментарии. Модели берём из каталога.
Подготовка
Нужен ключ AI Gateway sk-aigate-… и базовый URL https://ai-gatewey.ru/v1. Ключ задайте константой в wp-config.php или через переменную окружения сервера — не в теле темы или плагина. Код кладите в mu-plugins или отдельный плагин, а не в functions.php темы (переживёт смену темы).
Реализация
- Функция обращения к модели
Обёртка над
wp_remote_post: шлёт промпт на AI Gateway и возвращает текст ответа. Ключ читается из константы:<?php // wp-content/mu-plugins/aigate.php function aigate_generate($prompt, $model = 'deepseek/deepseek-chat') { $res = wp_remote_post('https://ai-gatewey.ru/v1/chat/completions', [ 'timeout' => 60, 'headers' => [ 'Authorization' => 'Bearer ' . AIGATE_API_KEY, 'Content-Type' => 'application/json', ], 'body' => wp_json_encode([ 'model' => $model, 'messages' => [ ['role' => 'user', 'content' => $prompt], ], ]), ]); if (is_wp_error($res)) { return ''; } $data = json_decode(wp_remote_retrieve_body($res), true); return $data['choices'][0]['message']['content'] ?? ''; } - Ключ в wp-config.php
Секрет держим отдельно от кода плагина — константой в конфиге (выше строки «That's all, stop editing»):
define('AIGATE_API_KEY', 'sk-aigate-ваш_ключ'); - Автогенерация описания товара
На сохранение товара WooCommerce формируем краткое описание, если его ещё нет. Флаг в мете не даёт запускать генерацию повторно:
add_action('save_post_product', function ($post_id) { if (get_post_meta($post_id, '_aigate_done', true)) { return; } $title = get_the_title($post_id); $text = aigate_generate("Напиши короткое продающее описание товара: {$title}"); if ($text) { wp_update_post(['ID' => $post_id, 'post_excerpt' => $text]); update_post_meta($post_id, '_aigate_done', 1); } }, 20);
wp-config.php или в переменной окружения — не в коде темы и не в полях админки, доступных из браузера. Запрос к модели небыстрый: в хуках сохранения ставьте разумный timeout и по возможности выносите генерацию в WP-Cron или фоновую задачу.Какие модели подойдут
Для массовой генерации описаний и аннотаций берут быструю недорогую модель; для важных текстов можно точечно подключить флагман:
| Модель | Ввод, ₽/1М | Вывод, ₽/1М | Контекст |
|---|---|---|---|
| DeepSeek: DeepSeek V3 | 31 | 125 | 128K |
| OpenAI: GPT-5.4 Mini | 118 | 705 | 400K |
| Anthropic Claude Haiku Latest | 157 | 784 | 200K |
Частые вопросы
Нужен ли сторонний AI-плагин?
Нет. Встроенной wp_remote_post достаточно, чтобы обратиться к любому OpenAI-совместимому API. Свой сниппет прозрачнее и не тянет лишних зависимостей, а ключ остаётся под вашим контролем.
Куда положить код — в functions.php?
Лучше в отдельный плагин или каталог mu-plugins: тогда логика переживёт смену темы и обновления. functions.php темы подходит только для быстрой пробы.
Как не сгенерировать описание дважды?
Ставьте флаг в мете поста (update_post_meta) после успешной генерации и проверяйте его в начале хука. Так повторное сохранение записи не приведёт к лишним запросам и расходу.
AI в WordPress — начните с ключа AI Gateway
Получить ключ