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

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

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

Для начала нам понадобится ключ доступа к Google Cloud Translation API. Чтобы его получить, выполните следующие шаги:

  1. Зарегистрируйтесь или войдите в Google Cloud Console.
  2. Создайте новый проект или выберите существующий.
  3. Перейдите в раздел APIs & Services > Library и найдите "Cloud Translation API".
  4. Активируйте API для вашего проекта.
  5. Перейдите в Credentials и создайте новый API ключ.
  6. Скопируйте полученный ключ и сохраните в безопасном месте.

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

Создание функции автоперевода контента в WordPress

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

function wptranslate_ru_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
    );

    $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;
}

Эта функция принимает исходный текст и целевой язык (например, 'en', 'de', 'fr') и возвращает переведённый текст или false в случае ошибки.

Автоматический перевод при сохранении поста

Чтобы автоматически переводить контент при сохранении записи, подключаемся к хуку save_post:

function wptranslate_ru_auto_translate_post($post_id) {
    // Проверяем тип записи, чтобы не применять ко всем
    if (get_post_type($post_id) !== 'post') {
        return;
    }

    // Получаем оригинальный контент
    $post = get_post($post_id);
    $original_content = $post->post_content;

    // Переводим на английский
    $translated_content = wptranslate_ru_translate_text($original_content, 'en');
    if (!$translated_content) {
        return;
    }

    // Обновляем кастомное поле с переводом
    update_post_meta($post_id, '_translated_content_en', wp_kses_post($translated_content));
}
add_action('save_post', 'wptranslate_ru_auto_translate_post');

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

Вывод переведённого контента в шаблоне WordPress

Для отображения перевода вместо оригинала можно использовать фильтр the_content. Вот пример функции, которая проверяет наличие перевода и выводит его:

function wptranslate_ru_display_translated_content($content) {
    if (is_singular('post')) {
        $post_id = get_the_ID();
        $translated = get_post_meta($post_id, '_translated_content_en', true);
        if (!empty($translated)) {
            return $translated;
        }
    }
    return $content;
}
add_filter('the_content', 'wptranslate_ru_display_translated_content');

Таким образом, если перевод есть, посетитель увидит его вместо оригинала.

Производительность и ограничения автоперевода без плагинов

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

Также у Google Translate есть ограничения на бесплатное использование. Для больших сайтов с частыми обновлениями стоит учитывать стоимость и лимиты API.

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

Альтернативы и плагины для автоперевода в WordPress

Если хотите быстро внедрить автоперевод без самостоятельной разработки, обратите внимание на плагины:

  • WP Remark — поддерживает машинный перевод с возможностью редактирования.
  • Clearfy Pro — оптимизирует работу сайта и может помочь с переводами.

Однако эти решения менее гибки, чем собственный код, и могут иметь свои ограничения.

Выводы и рекомендации

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

Проверяйте качество перевода, учитывайте производительность и лимиты API, а также не забывайте о безопасности при работе с внешними сервисами.

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

Как добавить автоперевод в WP Remark для WordPress
29.01.2026
Как создать собственный шорткод для перевода в WordPress
30.11.2025
Автоматический перевод описаний товаров WooCommerce: пошаговое руководство
26.04.2026
Как автоматически перевести метаданные в WordPress
02.03.2026
Как создать автоперевод шорткодов в WordPress
07.04.2026