В современном мире контент‑маркетинга автоматизация производства статей стала не роскошью, а необходимостью. Если вы хотите быстро внедрить генерацию текста на основе искусственного интеллекта прямо в админку WordPress, то подключить OpenAI API к PHP 8 – ваш первый шаг. Ниже разберём, как это сделать, чтобы любой редактор мог создавать уникальные статьи без лишних усилий.
Разбор задачи
Ключевая цель – интеграция OpenAI API в WordPress так, чтобы пользовательский интерфейс был простым: кнопка «Сгенерировать», поле для заголовка и тематики, а результат автоматически пополнял редактор. Нужно учесть несколько аспектов: хранение ключа API, обработка запросов через безопасный серверный слой, совместимость с PHP 8 и последними версиями WordPress, а также минимизацию нагрузки на хостинг.
Пошаговое решение
1. Сгенерируйте API‑ключ в кабинете OpenAI и сохраните его в безопасном месте. 2. Создайте плагин, который регистрирует AJAX‑шорткод и подключает скрипты админки. 3. На стороне сервера реализуйте обработчик, использующий cURL или Guzzle для запроса к https://api.openai.com/v1/chat/completions. 4. В ответе извлеките поле choices[0].message.content и отправьте его обратно в админку. 5. В редакторе добавьте кнопку, которая вызывает AJAX‑запрос, а полученный текст вставляет в TinyMCE. 6. Тестируйте на разных темах и убедитесь, что код работает в PHP 8 с WordPress 6.0+. 7. Для оптимизации можно кэшировать результаты и ограничивать количество запросов в минуту, чтобы избежать превышения лимитов. Каждый шаг описан подробно в следующей части статьи, где приведены готовые примеры кода и рекомендации по настройке безопасности.
Рабочий код
// 1. Установить библиотеку Guzzle (или использовать wp_remote_post)
require __DIR__ . "/vendor/autoload.php"; // Composer autoload
use GuzzleHttpClient;
function generate_content_with_openai( $prompt ) {
$api_key = get_option( 'openai_api_key' ); // Сохраняем ключ в настройках WP
if ( empty( $api_key ) ) {
return new WP_Error( 'no_api_key', 'OpenAI API key not configured.' );
}
$client = new Client( [
'base_uri' => 'https://api.openai.com/v1/',
'timeout' => 30,
] );
$response = $client->post( 'chat/completions', [
'headers' => [
'Authorization' => "Bearer {$api_key}",
'Content-Type' => 'application/json',
],
'json' => [
'model' => 'gpt-4o-mini',
'messages' => [ ['role' => 'user', 'content' => $prompt] ],
'max_tokens'=> 600,
],
] );
$body = json_decode( $response->getBody()->getContents(), true );
if ( isset( $body['choices'][0]['message']['content'] ) ) {
return wp_kses_post( $body['choices'][0]['message']['content'] ); // Очистка от нежелательного HTML
}
return new WP_Error( 'openai_error', 'Failed to generate content.' );
}
// 2. Воспользоваться в шаблоне
$prompt = "Напиши SEO‑оптимизированный абзац о преимуществе использования WordPress с OpenAI API.";
$content = generate_content_with_openai( $prompt );
if ( ! is_wp_error( $content ) ) {
echo $content;
} else {
echo $content->get_error_message();
}
Типичные ошибки
- Неправильный формат ключа – убедитесь, что ключ хранится как строка без пробелов.
- Проблемы с таймаутом – при больших запросах увеличьте timeout в клиенте.
- Неправильный выбор модели – используйте модели, поддерживаемые вашей подпиской.
- Блокировка сети – убедитесь, что ваш хостинг разрешает исходящие HTTPS‑запросы к https://api.openai.com.
FAQ
Как обновить ключ API в админке?
Перейдите в «Настройки» → «OpenAI» и введите новый ключ в поле «API‑ключ». Сохраните изменения, и он будет использован во всех запросах.
Могу ли я настроить лимит токенов?
Да, измените параметр «max_tokens» в JSON‑теле запроса. Установите разумный предел, чтобы избежать превышения квоты.
Что делать, если запрос возвращает ошибку 429?
Это лимит скорости. Уменьшите частоту запросов или используйте очередь задач (WP Cron) для распределения нагрузки.
Заключение и чек‑лист
- Установил Composer и Guzzle.
- Добавил ключ API в настройки WP.
- Написал функцию генерации и подключила её к шаблону.
- Проверил корректность работы без ошибок 429 и 500.
- Провёл SEO‑тест контента на уникальность и плотность ключевых слов.
