В современном мире искусственный интеллект (AI) становится все более востребованным и в веб-разработке, в том числе для сайтов на WordPress. В этой статье мы подробно разберем, как создать собственный плагин для WordPress, который использует возможности AI для улучшения функционала сайта. Рассмотрим создание плагина с интеграцией простого AI-модуля, примеры кода и лучшие практики.
Что нужно знать перед созданием плагина с AI для WordPress
Перед тем как погружаться в разработку, важно понимать основы плагинной архитектуры WordPress и как можно подключать внешние AI-сервисы, например, OpenAI, Hugging Face или собственные модели. Плагин — это набор PHP-файлов с определенной структурой и метаданными, которые WordPress распознает и активирует.
Чтобы использовать AI, чаще всего мы обращаемся к API внешних сервисов, отправляя текстовые или иные данные и получая готовые результаты, например, генерацию текста, анализ или классификацию. Это требует навыков работы с HTTP-запросами и асинхронным кодом в WordPress.
Также нужно помнить про безопасность: обязательно валидируйте и санитизируйте входящие и исходящие данные, а также следите за лимитами API и оптимизацией кода.
Шаг 1. Создаем структуру плагина и базовый файл
Начнем с создания папки для плагина в wp-content/plugins/wp-ai-plugin. Внутри создадим файл wp-ai-plugin.php с минимальным описанием:
<?php
/**
* Plugin Name: WP AI Plugin
* Description: Плагин для интеграции AI в WordPress.
* Version: 1.0
* Author: wp-ai.ru
*/
defined('ABSPATH') or die('No script kiddies please!');Этот файл уже можно активировать в админке WordPress.
Шаг 2. Подключаем OpenAI API для генерации текста
Для примера возьмем OpenAI GPT-3, который позволяет генерировать тексты. Для работы с API можно использовать функцию wp_remote_post. Создадим функцию wpai_generate_text(), которая отправит запрос и получит ответ.
function wpai_generate_text($prompt) {
$api_key = 'ВАШ_КЛЮЧ_OPENAI';
$endpoint = 'https://api.openai.com/v1/completions';
$args = array(
'headers' => array(
'Content-Type' => 'application/json',
'Authorization' => 'Bearer ' . $api_key,
),
'body' => json_encode(array(
'model' => 'text-davinci-003',
'prompt' => $prompt,
'max_tokens' => 150,
'temperature' => 0.7,
)),
);
$response = wp_remote_post($endpoint, $args);
if (is_wp_error($response)) {
return 'Ошибка API: ' . $response->get_error_message();
}
$body = wp_remote_retrieve_body($response);
$data = json_decode($body, true);
if (isset($data['choices'][0]['text'])) {
return trim($data['choices'][0]['text']);
}
return 'Нет ответа от AI';
}Эта функция принимает текст-промпт и возвращает сгенерированный AI текст или сообщение об ошибке.
Шаг 3. Создаем шорткод для вывода AI-текста на странице
Чтобы удобно использовать возможности AI, создадим шорткод [wpai_generate prompt="Ваш запрос"], который выведет сгенерированный текст в любом месте сайта.
function wpai_shortcode_generate($atts) {
$atts = shortcode_atts(array(
'prompt' => 'Привет, AI!'
), $atts);
$result = wpai_generate_text($atts['prompt']);
return '<div class="wpai-result">' . esc_html($result) . '</div>';
}
add_shortcode('wpai_generate', 'wpai_shortcode_generate');Теперь в редакторе можно вставить шорткод с любым текстом и получить AI-ответ.
Шаг 4. Добавляем настройки плагина для удобства
Чтобы не хранить API-ключ в коде, добавим страницу настроек в админку. Используем стандартный API WordPress для добавления меню и опций.
function wpai_add_admin_menu() {
add_options_page('WP AI Настройки', 'WP AI', 'manage_options', 'wp-ai', 'wpai_options_page');
}
add_action('admin_menu', 'wpai_add_admin_menu');
function wpai_settings_init() {
register_setting('wpai', 'wpai_options');
add_settings_section(
'wpai_section',
'Настройки API',
null,
'wp-ai'
);
add_settings_field(
'wpai_api_key',
'API ключ OpenAI',
'wpai_api_key_render',
'wp-ai',
'wpai_section'
);
}
add_action('admin_init', 'wpai_settings_init');
function wpai_api_key_render() {
$options = get_option('wpai_options');
?>
<input type="text" name="wpai_options[wpai_api_key]" value="<?php echo isset($options['wpai_api_key']) ? esc_attr($options['wpai_api_key']) : ''; ?>" size="50" />
<?php
}
function wpai_options_page() {
?>
<form action="options.php" method="post">
<h2>WP AI Плагин - Настройки</h2>
<?php
settings_fields('wpai');
do_settings_sections('wp-ai');
submit_button();
?>
</form>
<?php
}
// Изменим функцию генерации, чтобы брать ключ из настроек
function wpai_generate_text($prompt) {
$options = get_option('wpai_options');
$api_key = isset($options['wpai_api_key']) ? $options['wpai_api_key'] : '';
if (empty($api_key)) {
return 'API ключ не установлен в настройках плагина';
}
// Далее код как в Шаге 2
$endpoint = 'https://api.openai.com/v1/completions';
$args = array(
'headers' => array(
'Content-Type' => 'application/json',
'Authorization' => 'Bearer ' . $api_key,
),
'body' => json_encode(array(
'model' => 'text-davinci-003',
'prompt' => $prompt,
'max_tokens' => 150,
'temperature' => 0.7,
)),
);
$response = wp_remote_post($endpoint, $args);
if (is_wp_error($response)) {
return 'Ошибка API: ' . $response->get_error_message();
}
$body = wp_remote_retrieve_body($response);
$data = json_decode($body, true);
if (isset($data['choices'][0]['text'])) {
return trim($data['choices'][0]['text']);
}
return 'Нет ответа от AI';
}
Шаг 5. Оптимизация и кеширование ответов AI
Обращения к API часто платные и могут занимать время. Чтобы ускорить работу, стоит кешировать результаты запросов. Используем Transient API WordPress для временного хранения ответа.
function wpai_generate_text_cached($prompt) {
$transient_key = 'wpai_cache_' . md5($prompt);
$cached = get_transient($transient_key);
if ($cached !== false) {
return $cached;
}
$result = wpai_generate_text($prompt);
// Кешируем на 12 часов
set_transient($transient_key, $result, 12 * HOUR_IN_SECONDS);
return $result;
}
// В шорткоде замените вызов на wpai_generate_text_cached
function wpai_shortcode_generate($atts) {
$atts = shortcode_atts(array(
'prompt' => 'Привет, AI!'
), $atts);
$result = wpai_generate_text_cached($atts['prompt']);
return '<div class="wpai-result">' . esc_html($result) . '</div>';
}
add_shortcode('wpai_generate', 'wpai_shortcode_generate');Так мы уменьшим число обращений к API и повысим производительность сайта.
Дополнительные возможности и расширения
Вы можете расширить плагин, добавив:
- Обработку ошибок и логирование запросов к API.
- Интерфейс для выбора моделей AI и параметров генерации.
- Интеграцию с редактором Gutenberg, чтобы пользователи могли генерировать контент прямо в визуальном редакторе.
- Обратную связь для корректировки сгенерированного текста.
Также можно использовать AI для анализа комментариев, автоматического тегирования записей, создания подсказок для SEO и многого другого.
Заключение
Создание собственного плагина для WordPress с AI — вполне выполнимая задача, если следовать правильной структуре и использовать современные API. В этой статье мы разобрали базовый пример с OpenAI, который легко можно адаптировать под свои нужды. Такой плагин поможет автоматизировать генерацию контента, повысить вовлеченность пользователей и расширить возможности сайта на WordPress.