Как автоматически перевести метаданные в WordPress

Что такое метаданные в WordPress и зачем их переводить

Метаданные (custom fields) — это дополнительная информация, связанная с записями, страницами и другими типами контента в WordPress. Например, это могут быть характеристики товаров, описания, SEO-теги или любые другие данные, не входящие в основной текст. При создании многоязычного сайта важно перевести не только заголовки и содержимое, но и метаданные, чтобы обеспечить полный локализованный опыт для пользователей.

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

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

Основные сложности при переводе метаданных

Метаданные хранятся в таблице wp_postmeta и могут иметь разную структуру и формат. Они не всегда являются простыми текстовыми строками — иногда это JSON, сериализованные массивы или числовые значения, которые не требуют перевода.

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

Например, поле _yoast_wpseo_title отвечает за заголовок SEO, а product_description — описание товара. Переводить нужно только текстовые поля, а числовые или системные — исключать.

Ручной перевод метаданных через WPML и Polylang

Плагины WPML и Polylang поддерживают перевод custom fields, но требуют их явного указания в настройках:

  • В WPML нужно в разделе Настройки мультиязычности включить перевод для нужных полей.
  • В Polylang для Pro версии есть возможность синхронизировать или переводить метаданные.

Однако такой подход требует ручного перевода и не подходит для сайтов с большим объёмом данных.

Автоматический перевод метаданных с помощью Google Translate API и кода

Для автоматизации перевода можно использовать Google Cloud Translation API или другие сервисы. Ниже пример функции для автоматического перевода метаданных при сохранении записи.

function wptranslate_translate_postmeta($post_id) {
    if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) return;
    if (wp_is_post_revision($post_id)) return;

    $meta_keys_to_translate = ['product_description', 'custom_text_field'];

    foreach ($meta_keys_to_translate as $meta_key) {
        $value = get_post_meta($post_id, $meta_key, true);
        if (!empty($value)) {
            $translated = wptranslate_google_translate($value, 'ru', 'en'); // перевод с русского на английский
            update_post_meta($post_id, $meta_key . '_en', $translated);
        }
    }
}
add_action('save_post', 'wptranslate_translate_postmeta');

function wptranslate_google_translate($text, $source, $target) {
    // Здесь должна быть интеграция с Google Cloud Translation API
    // Для примера возвращаем текст с пометкой
    return '[Перевод] ' . $text;
}

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

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

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

Использование Clearfy Pro избавит от необходимости писать собственный код и обеспечит стабильную работу на больших сайтах.

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

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

Важно:

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

Пример функции в плагине:

function wptranslate_plugin_translate_meta($post_id) {
    if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) return;
    $fields = ['my_custom_field'];
    foreach ($fields as $field) {
        $val = get_post_meta($post_id, $field, true);
        if ($val) {
            $translated = wptranslate_google_translate($val, 'ru', 'en');
            update_post_meta($post_id, $field . '_en', $translated);
        }
    }
}
add_action('save_post', 'wptranslate_plugin_translate_meta');

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

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

  • Кешируйте результаты перевода, чтобы не обращаться к API повторно.
  • Используйте асинхронные задачи (wp_cron или очереди) для перевода больших объёмов.
  • Минимизируйте количество полей к переводу, выбирая только необходимые.
  • Ограничивайте длину текстов для перевода.

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

Заключение

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

Как создать многоязычный сайт на WordPress с помощью Polylang
09.11.2025
Как использовать хук doretranslate для дополнительного перевода в WordPress
12.02.2026
Как автоматически перевести атрибуты товаров WooCommerce в WordPress
29.04.2026
Как сделать автоперевод контента в WordPress без плагинов
23.02.2026
Как использовать WPML для автоперевода страниц WordPress
09.02.2026