Как добавить автоматический перевод постов в WordPress

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

Выбор подходящего плагина для автоматического перевода

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

1. TranslatePress

TranslatePress — мощный плагин с визуальным интерфейсом перевода, поддерживает интеграцию с Google Translate API и DeepL. Позволяет автоматически переводить весь контент сайта, включая посты, страницы и даже виджеты.

  • Преимущества: визуальный редактор, поддержка SEO для каждого языка, автоматический перевод с возможностью ручной корректировки.
  • Недостатки: для автоматического перевода требуется платная версия с API ключами.

2. Weglot

Weglot — облачный сервис с плагином для WordPress, обеспечивает автоматический перевод с возможностью редактирования через веб-интерфейс.

  • Преимущества: простая настройка, поддержка множества языков, SEO-оптимизация.
  • Недостатки: бесплатный тариф ограничен 2000 слов, платные планы могут быть дорогими.

3. GTranslate

Плагин GTranslate использует Google Translate API для автоматического перевода и поддерживает более 100 языков.

  • Преимущества: бесплатная версия с базовым функционалом, простая интеграция.
  • Недостатки: бесплатная версия добавляет водяной знак, платные расширения обеспечивают SEO-дружественные URL.

Как интегрировать автоматический перевод с помощью собственного кода и Google Translate API

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

Регистрация и получение API ключа Google Cloud Translation

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

Пример функции для автоматического перевода текста

function wpid_translate_text($text, $target_language = 'en') {
    $apiKey = 'ВАШ_GOOGLE_API_KEY';
    $url = 'https://translation.googleapis.com/language/translate/v2?key=' . $apiKey;

    $data = [
        'q' => $text,
        'target' => $target_language,
        'format' => 'text'
    ];

    $args = [
        'body'        => json_encode($data),
        'headers'     => [
            'Content-Type' => 'application/json'
        ],
        'method'      => 'POST',
        'data_format' => 'body'
    ];

    $response = wp_remote_post($url, $args);

    if (is_wp_error($response)) {
        return $text; // Возвращаем оригинал при ошибке
    }

    $body = json_decode(wp_remote_retrieve_body($response), true);
    if (isset($body['data']['translations'][0]['translatedText'])) {
        return $body['data']['translations'][0]['translatedText'];
    }

    return $text;
}

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

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

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

add_action('save_post', 'wpid_auto_translate_post', 10, 3);
function wpid_auto_translate_post($post_ID, $post, $update) {
    if ($post->post_type !== 'post') {
        return;
    }

    $translated_title = wpid_translate_text($post->post_title, 'en');
    $translated_content = wpid_translate_text($post->post_content, 'en');

    // Сохраняем переводы в метаполя
    update_post_meta($post_ID, '_translated_title_en', $translated_title);
    update_post_meta($post_ID, '_translated_content_en', $translated_content);
}

Такой подход позволяет хранить переводы и выводить их на фронтенде по необходимости.

Вывод переведённого контента на сайте

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

function wpid_get_translated_content($post_ID, $lang = 'en') {
    $translated_content = get_post_meta($post_ID, '_translated_content_' . $lang, true);
    if ($translated_content) {
        return $translated_content;
    }
    return get_post_field('post_content', $post_ID);
}

// Использование в шаблоне
echo wpid_get_translated_content(get_the_ID(), 'en');

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

Практические рекомендации и оптимизация

Автоматический перевод — мощный инструмент, но требует внимательности:

  • Обязательно кешируйте результаты переводов, чтобы уменьшить вызовы API и ускорить сайт.
  • Проверяйте качество перевода и при необходимости предоставляйте возможность ручной правки.
  • Используйте SEO-практики для мультиязычных сайтов: hreflang, отдельные URL для языков, мета-теги.
  • Если хотите расширить функционал, рассмотрите интеграцию с плагинами для мультиязычности, например, Polylang или WPML.

Заключение

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

Для более простых решений рекомендую попробовать TranslatePress с интеграцией Google Translate API: https://wpshop.ru/plugins/translatepress.

Как использовать REST API для создания простого плагина WordPress
03.12.2025
Как исключить определённые плагины из автообновлений в WordPress
25.04.2026
Как отключить AJAX в Gutenberg для ускорения работы редактора WordPress
01.03.2026
Как удалить удалённых пользователей WordPress без возможности восстановления
06.12.2025
Как добавить дополнительное поле в форму регистрации WordPress
22.12.2025