Как создать свой плагин для автоперевода WordPress

Почему стоит создать собственный плагин автоперевода для WordPress

Автоматический перевод контента на сайте — востребованная функция, особенно для многоязычных проектов. Хотя на рынке есть множество готовых решений, они не всегда подходят под конкретные задачи или бюджет. Создав собственный плагин, вы получаете полный контроль над процессом, можете интегрировать нужные API, оптимизировать производительность и гибко настраивать логику перевода.

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

В этом руководстве мы разберем, как реализовать базовый плагин автоперевода для WordPress с использованием API Google Translate и подключением к хукам WordPress для автоматического перевода постов.

Подготовка: регистрация и получение ключа Google Translate API

Для начала работы с Google Translate API необходимо зарегистрироваться в Google Cloud Platform и создать проект. После чего нужно подключить API Cloud Translation и получить API-ключ.

Примерный алгоритм:

  • Зарегистрируйтесь или войдите в консоль Google Cloud Platform.
  • Создайте новый проект.
  • Активируйте API Cloud Translation API.
  • Создайте учетные данные — API-ключ, который будет использоваться для вызова сервиса.
  • Ограничьте ключ по IP или домену для безопасности.

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

Структура плагина и подключение к WordPress

Создадим базовую структуру плагина в директории wp-content/plugins/wptranslate-autotranslate с главным файлом wptranslate-autotranslate.php. В нем опишем метаданные и базовые хуки.

<?php
/**
 * Plugin Name: WPTranslate Autotranslate
 * Description: Автоматический перевод постов с помощью Google Translate API
 * Version: 1.0
 * Author: WPTranslate
 */

// Защита от прямого доступа
if (!defined('ABSPATH')) {
    exit;
}

// Хук при публикации поста
add_action('publish_post', 'wptranslate_autotranslate_publish_post');

function wptranslate_autotranslate_publish_post($post_id) {
    // Логика автоперевода
}
?>

Обратите внимание, что функция wptranslate_autotranslate_publish_post будет вызываться при публикации поста и запускать процесс перевода.

Реализация функции автоперевода с использованием Google Translate API

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

function wptranslate_autotranslate_translate_text($text, $target_language = 'en') {
    $api_key = 'ВАШ_API_КЛЮЧ';
    $url = 'https://translation.googleapis.com/language/translate/v2?key=' . $api_key;

    $data = array(
        'q' => $text,
        'target' => $target_language,
        'format' => 'text'
    );

    $response = wp_remote_post($url, array(
        'body' => json_encode($data),
        'headers' => array(
            'Content-Type' => 'application/json'
        )
    ));

    if (is_wp_error($response)) {
        return false;
    }

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

    if (isset($body['data']['translations'][0]['translatedText'])) {
        return $body['data']['translations'][0]['translatedText'];
    }

    return false;
}

Эта функция принимает исходный текст и язык, на который нужно перевести. Далее она делает запрос к Google Translate API и возвращает переведённый текст.

Автоматический перевод при публикации поста

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

function wptranslate_autotranslate_publish_post($post_id) {
    $post = get_post($post_id);

    if ($post->post_status !== 'publish') {
        return;
    }

    $original_content = $post->post_content;
    $translated_content = wptranslate_autotranslate_translate_text($original_content, 'en');

    if (!$translated_content) {
        return;
    }

    $translated_post = array(
        'post_title'    => $post->post_title . ' (EN)',
        'post_content'  => $translated_content,
        'post_status'   => 'publish',
        'post_type'     => $post->post_type,
        'post_author'   => $post->post_author,
        'post_parent'   => $post_id
    );

    wp_insert_post($translated_post);
}

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

Дополнительные рекомендации и плагины для автоперевода WordPress

Если вы не хотите писать свой плагин, можно использовать готовые решения, которые легко настраиваются и интегрируются:

  • TranslatePress — поддерживает автоматический перевод через Google Translate и DeepL, с удобным визуальным редактором.
  • GTranslate — простой плагин с использованием Google Translate, подходит для быстрого запуска.
  • Weglot — мощный сервис с автоматическим переводом и SEO-оптимизацией.

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

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

Как улучшить качество и производительность автоперевода

Автоматический перевод может содержать ошибки, особенно в технических или специализированных текстах. Чтобы минимизировать проблемы, рекомендуем:

  • Использовать пользовательские глоссарии и словари, если API это поддерживает.
  • Добавлять возможность ручной корректировки перевода в админке.
  • Кэшировать переводы в базе данных, чтобы не делать повторные запросы.
  • Ограничивать количество символов для перевода за один запрос.
  • Внедрять обработку исключений и логирование ошибок API.

Также стоит изучить альтернативные API, например DeepL, которые иногда дают более качественный результат.

Как добавить поддержку мультиязычности в тему WordPress без плагинов
27.12.2025
Как добавить автоперевод для сообщений об ошибках WordPress
12.01.2026
Как перевести на WordPress пользовательские типы записей и таксономии
03.12.2025
Как сделать перевод административной панели WordPress на русский язык
06.01.2026
Как исправить проблему с переводом постоянных ссылок (Permalinks) в WordPress
09.12.2025