Почему важно правильно организовать многоязычный контент в 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 плагина. Это решит многие проблемы с отображением и организацией переведённого контента.