Интеграция OpenRouter в WordPress: коннектор для 200+ AI‑моделей

OpenRouter Connector — плагин для WordPress 7.0: подключает OpenRouter через Connectors API и делает провайдера доступным в WP AI Client. После установки и ввода API‑ключа любые функции и плагины, работающие через стандартный AI API WordPress, получают доступ к 200+ AI‑моделям через одного провайдера.

Что это и зачем

OpenRouter Connector for WordPress добавляет OpenRouter как AI‑провайдера в WordPress 7.0 через стандартный механизм Connectors API. Вы устанавливаете плагин, вводите API‑ключ — и любые компоненты, использующие WP AI Client, получают доступ к сотням моделей (GPT, Claude, Gemini, Mistral, LLaMA и др.) через единый интерфейс.

Плагин не добавляет отдельный интерфейс и не дублирует функции других решений. Он регистрирует провайдера в WordPress и безопасно хранит учётные данные.

Внимание!

Для работы плагина требуется WordPress 7.0

Чтобы проверить как генерируется контент из админки — нужен еще официальный плагин AI https://wordpress.org/plugins/ai/

Архитектурная основа: плагин AI от WordPress

Базовый плагин AI (wordpress.org/plugins/ai) — это официальный экспериментальный плагин команды WordPress.org, реализующий реальные AI-функции поверх WP AI Client. Именно его функции становятся доступны при подключении OpenRouter:

Текущие функции AI-плагина

  • Генерация заголовков — кнопка «Generate» прямо над полем заголовка поста; предлагает варианты в модальном окне
  • Генерация эксцерпта — автоматическое создание краткого описания поста одним кликом из сайдбара редактора
  • Суммаризация контента — генерирует краткое содержание длинного поста и сохраняет в специальный AI Summary блок
  • Генерация Alt-текста — создаёт описательный alt-текст для изображений прямо в блоке Image или в медиабиблиотеке
  • Генерация изображений — создание изображений по промпту прямо в редакторе постов или через медиабиблиотеку
  • Редактирование изображений — изменение изображений по промпту: замена фона, удаление объектов, стилизация
  • Review Notes — анализирует пост поблочно и оставляет замечания по читаемости, грамматике, SEO и доступности
  • Abilities Explorer — экран в админке для просмотра, тестирования и изучения всех зарегистрированных AI Abilities

Experiment Framework

Все функции работают через систему Experiments — каждую функцию можно включить или отключить независимо в Settings → AI. Это opt-in архитектура: ничего не происходит автоматически без явного согласия пользователя.


Как это работает: WordPress 7.0 AI API

Connectors API

WordPress 7.0 ввёл стандартный механизм подключения внешних сервисов — Connectors API. Каждый коннектор — это зарегистрированный провайдер с метаданными: название, логотип, метод аутентификации, ссылка на получение ключа.

OpenRouter Connector регистрирует себя через wp_connectors_init:

add_action('wp_connectors_init', function(WP_Connector_Registry $registry) {
    $registry->register('openrouter', [
        'name'        => 'OpenRouter',
        'description' => 'Access 200+ AI models through a single OpenAI-compatible API.',
        'type'        => 'ai_provider',
        'logo_url'    => plugin_dir_url(__FILE__) . 'assets/openrouter-logo.svg',
        'authentication' => [
            'method'          => 'api_key',
            'credentials_url' => '<https://openrouter.ai/keys>',
            'setting_name'    => 'connectors_ai_openrouter_api_key',
        ],
        'plugin' => [
            'slug' => 'ai-connector-openrouter-wordpress',
        ],
    ]);
});

После регистрации провайдер появляется на экране Settings → Connectors в виде карточки с полем для API-ключа и ссылкой на получение ключа на openrouter.ai.

Приоритет источников API-ключа

WordPress 7.0 проверяет ключ в таком порядке:

  1. Переменная окружения: OPENROUTER_API_KEY
  2. PHP-константа: define('OPENROUTER_API_KEY', 'sk-...')
  3. База данных (через UI в Settings → Connectors)

WP AI Client: точка входа для разработчиков

После настройки провайдера любой плагин получает доступ к AI через единый fluent API:

// Базовая генерация текста
$text = wp_ai_client_prompt('Напиши SEO-описание для поста о WordPress 7.0.')
    ->using_temperature(0.7)
    ->generate_text();

if (is_wp_error($text)) {
    // Обработка ошибки
    return;
}

echo wp_kses_post($text);

Сценарии использования с примерами кода

1. Генерация метаописаний для SEO

add_action('save_post', function(int $post_id, WP_Post $post) {
    if (wp_is_post_revision($post_id) || !current_user_can('edit_post', $post_id)) {
        return;
    }

    $builder = wp_ai_client_prompt(
        sprintf('Write an SEO meta description (max 160 chars) for this post: %s', $post->post_title)
    )->using_max_tokens(100)->using_temperature(0.5);

    if (!$builder->is_supported_for_text_generation()) {
        return; // AI-провайдер не настроен
    }

    $meta = $builder->generate_text();

    if (!is_wp_error($meta)) {
        update_post_meta($post_id, '_seo_meta_description', sanitize_text_field($meta));
    }
}, 10, 2);

2. REST API-эндпоинт с AI‑генерацией

add_action('rest_api_init', function() {
    register_rest_route('my-plugin/v1', '/summarize', [
        'methods'             => 'POST',
        'callback'            => 'my_plugin_summarize_callback',
        'permission_callback' => fn() => current_user_can('edit_posts'),
        'args'                => [
            'content' => ['required' => true, 'type' => 'string'],
        ],
    ]);
});

function my_plugin_summarize_callback(WP_REST_Request $request): WP_REST_Response|WP_Error {
    $result = wp_ai_client_prompt(
        sprintf('Summarize in 3 bullet points: %s', $request->get_param('content'))
    )
    ->using_model_preference('claude-sonnet-4-6', 'gpt-5.4', 'gemini-3.1-pro-preview')
    ->using_temperature(0.3)
    ->generate_text_result();

    return rest_ensure_response($result); // WP_Error тоже обрабатывается автоматически
}

3. Мультимодальный вывод: текст + изображение

use WordPress\\AiClient\\Messages\\Enums\\ModalityEnum;

$result = wp_ai_client_prompt(
    'Создай рецепт шоколадного торта с пошаговыми иллюстрациями.'
)
->as_output_modalities(ModalityEnum::text(), ModalityEnum::image())
->generate_result();

if (!is_wp_error($result)) {
    foreach ($result->toMessage()->getParts() as $part) {
        if ($part->isText()) {
            echo wp_kses_post($part->getText());
        } elseif ($part->isFile() && $part->getFile()->isImage()) {
            echo '<img src="' . esc_url($part->getFile()->getDataUri()) . '">';
        }
    }
}

4. Проверка доступности функций перед показом UI

function my_plugin_show_ai_button(): void {
    $builder = wp_ai_client_prompt('test')->using_temperature(0.7);

    // Не делает API-запросов — детерминированная проверка
    if (!$builder->is_supported_for_text_generation()) {
        echo '<p>Настройте AI-провайдер в Settings → Connectors.</p>';
        return;
    }

    echo '<button class="js-generate-ai">✨ Сгенерировать с AI</button>';
}

5. Структурированный вывод JSON

$schema = [
    'type'  => 'array',
    'items' => [
        'type'       => 'object',
        'properties' => [
            'tag'      => ['type' => 'string'],
            'relevance' => ['type' => 'number'],
        ],
        'required' => ['tag', 'relevance'],
    ],
];

$json = wp_ai_client_prompt(
    sprintf('Suggest 5 relevant tags for this post: %s', get_the_title())
)
->as_json_response($schema)
->generate_text();

if (!is_wp_error($json)) {
    $tags = json_decode($json, true);
    // Используем структурированные данные
}

Ключевые особенности связки

Автообнаружение провайдера. После регистрации в реестре WP AI Client коннектор подхватывается автоматически — без дополнительного кода. Плагин появляется в Settings → Connectors.

Доступ к 200+ моделям по одному ключу. OpenRouter агрегирует GPT, Claude, Gemini, Mistral, LLaMA, Qwen и десятки других моделей через OpenAI‑совместимый API. Разработчик задаёт предпочтения через using_model_preference(), WordPress выбирает первую доступную.

Приоритет переменных окружения. В продакшне ключ можно задать через OPENROUTER_API_KEY в .env или конфиге сервера — тогда ключ не хранится в базе данных.

Проверка возможностей без запросов к API. Методы is_supported_for_*() работают детерминированно и не обращаются к OpenRouter. Это помогает скрывать AI‑интерфейс на сайтах, где провайдер не настроен.

REST API «из коробки». GenerativeAiResult сериализуется через rest_ensure_response() — форматировать ответ вручную не нужно.


Итого

OpenRouter Connector — минималистичный плагин‑провайдер. Он использует стандарты WordPress 7.0 (Connectors API + WP AI Client) и подключает к ним OpenRouter с каталогом моделей.

Для пользователя: один API‑ключ даёт доступ ко всем функциям AI‑плагина (заголовки, эксцерпты, изображения, alt‑тексты, Review Notes) и выбору моделей (Claude, GPT, Gemini и др.).

Для разработчика: wp_ai_client_prompt() работает с OpenRouter так же, как с провайдерами Anthropic/Google/OpenAI. Код не меняется — меняется провайдер.

WordPress 7.0 с встроенным AI Client закрепляет экосистему плагинов‑коннекторов как рабочий стандарт. OpenRouter Connector показывает, как выглядит корректная интеграция.


Источники

Фото аватара

Antony I

Веб разработчик, специализация на лучших мировых практиках: WordPress, WooCommerce, NextJS, Strapi, JAMStack ...

Основные типы проектов: CMS, eCommerce, SEO, LMS, ECM, BPM

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *