Как создать функционал для автоперевода метаданных в WordPress

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

Почему важен автоперевод метаданных в WordPress

Метаданные — это дополнительная информация, хранящаяся в записях, страницах или пользовательских типах записей. Например, в интернет-магазине это могут быть характеристики товара, в блоге — авторские заметки, а в портфолио — описание проектов.

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

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

Используемые плагины для автоперевода метаданных

Среди популярных инструментов для автоперевода контента и метаданных стоит отметить:

  • WPGPT — плагин на базе GPT-4, который может переводить любые тексты, включая произвольные поля;
  • Clearfy Pro — оптимизирует работу сайта и поддерживает расширенные функции мультиязычности;
  • DeepL API — можно интегрировать вручную или через плагины для качественного машинного перевода;
  • Google Cloud Translate API — популярный и мощный сервис для перевода.

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

Создание собственного функционала автоперевода метаданных в WordPress

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

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

Для работы с API DeepL необходимо зарегистрироваться на официальном сайте DeepL и получить ключ API.

Пример функции автоперевода метаданных

function wptranslate_autotranslate_meta($post_id) {
    // Проверяем, чтобы это не автосохранение
    if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) return;

    // Получаем исходный метаданные
    $original_meta_key = '_product_description';
    $translated_meta_key = '_product_description_en';

    $text_to_translate = get_post_meta($post_id, $original_meta_key, true);
    if (empty($text_to_translate)) return;

    // Ваш API ключ DeepL
    $api_key = 'ВАШ_API_КЛЮЧ';
    $url = 'https://api-free.deepl.com/v2/translate';

    $data = [
        'auth_key' => $api_key,
        'text' => $text_to_translate,
        'target_lang' => 'EN'
    ];

    $response = wp_remote_post($url, [
        'body' => $data
    ]);

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

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

    if (isset($result['translations'][0]['text'])) {
        update_post_meta($post_id, $translated_meta_key, $result['translations'][0]['text']);
    }
}
add_action('save_post', 'wptranslate_autotranslate_meta');

Данная функция срабатывает при сохранении записи, берет значение из метаполя _product_description, отправляет его на перевод в DeepL и сохраняет результат в _product_description_en.

Особенности и рекомендации

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

Как интегрировать автоперевод в шаблоны и виджеты WordPress

После перевода метаданных нужно корректно выводить их в зависимости от выбранного языка. Предположим, что текущий язык хранится в переменной $current_lang. Тогда можно использовать такой код:

function wptranslate_get_translated_meta($post_id, $meta_key, $current_lang) {
    if ($current_lang === 'en') {
        $translated_key = $meta_key . '_en';
        $translated_value = get_post_meta($post_id, $translated_key, true);
        if (!empty($translated_value)) {
            return $translated_value;
        }
    }
    return get_post_meta($post_id, $meta_key, true);
}

Используйте эту функцию в шаблонах для вывода метаданных с учетом языка:

$description = wptranslate_get_translated_meta(get_the_ID(), '_product_description', $current_lang);
echo esc_html($description);

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

Дополнительные советы по работе с автопереводом в WordPress

Обработка ошибок и логирование

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

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

Автоматический перевод — это внешние запросы, которые могут замедлить сохранение записи. Рекомендуется выполнять перевод в фоне через WP-Cron или очереди задач, чтобы не блокировать пользователя.

Поддержка мультиязычных плагинов

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

Заключение

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

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

Как использовать REST API WordPress для автоперевода контента
11.04.2026
Как добавить поддержку языков в собственном Gutenberg-блоке WordPress
16.02.2026
Как создать свой плагин для автоперевода WordPress
26.11.2025
Как настроить автоперевод контента WordPress с использованием GPT-4
17.12.2025
Оптимизация автоперевода описаний товаров WooCommerce в WordPress
03.05.2026