В современном взаимосвязанном мире создание многоязычного веб-сайта имеет решающее значение для охвата глобальной аудитории и расширения вашего присутствия в Интернете. Одним из мощных инструментов для создания многоязычных веб-сайтов является плагин WordPress Multilingual (WPML). В этой статье мы рассмотрим различные методы и приемы реализации многоязычной функциональности с помощью WPML, а также приведем примеры кода, иллюстрирующие каждый подход.
Метод 1: Виджет переключения языка WPML
WPML предоставляет встроенный виджет переключения языка, который позволяет пользователям переключаться между различными языковыми версиями вашего веб-сайта. Чтобы добавить этот виджет на свой сайт, перейдите в раздел «Внешний вид» >«Виджеты» на панели управления WordPress и перетащите виджет «Переключатель языка» в нужную область боковой панели. Вот пример фрагмента кода для отображения переключателя языка на боковой панели вашей темы:
<?php if (function_exists('wpml_add_language_selector')) {
wpml_add_language_selector(array('dropdown' => 1));
} ?>
WPML позволяет создавать страницы перевода для каждого языка. Чтобы создать перевод, перейдите на страницу или сообщение, которое вы хотите перевести, и нажмите значок «плюс» рядом с языком, на который вы хотите перевести. WPML продублирует исходный контент, а затем вы сможете изменить переведенную версию. Вот пример того, как программно создать страницу перевода с помощью API WPML:
<?php
$original_post_id = 123; // ID of the original post
$original_language = 'en'; // Language code of the original post
$translation_language = 'fr'; // Language code of the translation
// Create a new translation post
$new_post_id = wpml_register_single_string($original_language, 'post', 'post_title', $original_post_id);
wpml_update_translation_status($new_post_id, $translation_language, ICL_TM_WAITING_FOR_TRANSLATOR);
// Get the translated content
$translated_post = get_post($new_post_id);
echo $translated_post->post_title;
?>
Метод 3: меню для конкретного языка
WPML позволяет создавать меню для конкретного языка и настраивать навигацию для каждого языка. Чтобы создать меню для конкретного языка, перейдите в «Внешний вид» >«Меню» на панели управления WordPress и создайте новое меню для нужного языка. Затем назначьте меню соответствующий язык с помощью переключателя языка WPML. Вот пример того, как отобразить языковое меню в вашей теме:
<?php
$menu_id = wpml_object_id_filter('123', 'nav_menu');
wp_nav_menu(array(
'menu' => $menu_id,
'container' => 'nav',
'container_class' => 'language-menu',
));
?>
WPML поддерживает перевод пользовательских типов записей и таксономий. Чтобы включить перевод для настраиваемого типа публикации или таксономии, перейдите в «WPML» >«Настройки» >«Перевод настраиваемых полей» и выберите желаемый настраиваемый тип публикации или таксономию. Вот пример того, как получить переведенный контент произвольного типа сообщения:
<?php
$translated_title = apply_filters('wpml_translate_single_string', $post->post_title, 'Custom Post Type', 'post_title', $language_code);
echo $translated_title;
?>
<?php
add_filter('wpseo_title', 'wpml_filter_wpseo_title', 10, 1);
function wpml_filter_wpseo_title($title) {
$language_code = ICL_LANGUAGE_CODE;
$translated_title = get_post_meta(get_the_ID(), '_yoast_wpseo_title_' . $language_code, true);
return $translated_title ? $translated_title : $title;
}
?>
Создание многоязычного веб-сайта с использованием WPML открывает новые возможности для охвата разнообразной аудитории. Реализуя такие методы, как виджет переключения языка WPML, создавая страницы перевода, используя меню для конкретного языка, переводя пользовательские типы сообщений и таксономии, а также оптимизируя настройки SEO, вы можете создать плавный и удобный многоязычный интерфейс. WPML предлагает обширные возможности и надежную функциональность для управления переводами, что делает его отличным выбором для создания многоязычных веб-сайтов на платформе WordPress.