Как вывести многоязычный контент в WordPress с помощью WPML

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

Если вы создаёте сайт на WordPress для международной аудитории, многоязычность — ключевой момент. Правильная организация мультиязычного контента позволяет не только улучшить пользовательский опыт, но и повысить SEO сайта в разных регионах. Одним из самых популярных плагинов для реализации многоязычности является WPML (WordPress Multilingual Plugin). В данной статье мы подробно рассмотрим, как с помощью WPML настроить вывод контента на нескольких языках и управлять переводами эффективно.

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

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

Установка и базовая настройка WPML

Для начала нужно приобрести и скачать плагин WPML с официального сайта или с wpshop.ru с сохранением UTM-меток.

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

  • Выберите основной язык сайта.
  • Добавьте языки, на которые планируете переводить.
  • Выберите способ переключения языка (например, выпадающее меню в меню сайта).

WPML автоматически создаст языковые версии страниц и позволит вам управлять переводами.

Как вывести переводы страниц и записей в шаблоне

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

Например, чтобы вывести заголовок и контент текущей записи на нужном языке, достаточно использовать стандартные функции WordPress, так как WPML автоматически переключает контент в зависимости от выбранного языка.

Однако, если нужно получить перевод произвольного поля или пользовательского типа записи, стоит использовать API WPML.

Пример: получение перевода ID записи

function wpone_get_translation_id($post_id, $lang_code) {
    if (function_exists('icl_object_id')) {
        return icl_object_id($post_id, 'post', false, $lang_code);
    }
    return $post_id;
}

// Использование
$translated_id = wpone_get_translation_id(123, 'en');
$translated_post = get_post($translated_id);
echo $translated_post->post_title;

Функция icl_object_id возвращает ID перевода записи в нужном языке. Если перевода нет, возвращается оригинальный ID.

Перевод пользовательских полей и метаданных

Многие сайты используют произвольные поля (custom fields) для дополнительных данных. WPML умеет работать с такими полями, но их нужно пометить как переводимые в настройках плагина.

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

Пример вывода переведённого поля

$field_value = get_post_meta(get_the_ID(), 'wpone_custom_field', true);
echo esc_html($field_value);

Если поле не переводится, можно использовать фильтр WPML для добавления поддержки.

Настройка перевода строк интерфейса и текста плагинов

Для перевода текстов в шаблонах и плагинах WPML предлагает модуль String Translation. Он позволяет переводить любые строки, даже те, которые не находятся в постах или страницах.

Чтобы зарегистрировать строку для перевода в коде, используйте функцию do_action('wpml_register_single_string', $context, $name, $value).

Пример регистрации и вывода переводимой строки

function wpone_register_strings() {
    do_action('wpml_register_single_string', 'wpone-theme', 'welcome_message', 'Добро пожаловать на сайт!');
}
add_action('init', 'wpone_register_strings');

function wpone_get_welcome_message() {
    return apply_filters('wpml_translate_single_string', 'Добро пожаловать на сайт!', 'wpone-theme', 'welcome_message');
}

echo wpone_get_welcome_message();

Это позволит переводчикам в админке WPML добавить переводы для строки «Добро пожаловать на сайт!».

Использование плагина ABC Pagination с WPML для пагинации многоязычного сайта

Если вы используете кастомную пагинацию, например ABC Pagination, важно корректно передавать параметры языка в URL. WPML автоматически добавляет языковой префикс к ссылкам, но если вы формируете ссылки вручную, учитывайте это.

Для генерации ссылок с учётом языка используйте функцию WPML icl_get_home_url() или стандартные функции WordPress с помощью get_permalink().

Полезные советы для работы с WPML

  • Регулярно обновляйте WPML и его дополнения для совместимости с WordPress.
  • Используйте String Translation для динамического текста и сообщений плагинов.
  • Проверяйте переводы пользовательских полей в настройках WPML.
  • Тестируйте работу переключателя языков во всех частях сайта.
  • Для больших проектов рассмотрите использование автоматического перевода с последующей редактурой.

С WPML можно сделать действительно качественный многоязычный сайт на WordPress, если грамотно настроить и использовать API плагина. Это решит многие проблемы с отображением и организацией переведённого контента.

WooCommerce: автоматическое изменение стоимости товара после оплаты с помощью хука
31.05.2026
Как создать функцию автoрегистрации пользователей WordPress с подтверждением email
09.01.2026
Как удалить неиспользуемые термины таксономий в WordPress
24.03.2026
Как использовать Transients в WordPress для кэширования данных
27.11.2025
Как использовать AJAX в формах WordPress без плагинов
29.01.2026