Мультиязычный сайт на WordPress (обновлено)

26.11.2019 | Написав

Для создания мультиязычного веб-сайта на WordPress я использую бесплатную версию плагина Polylang. Настраивается он легко и это я не буду расписывать. Но есть моменты, на которых стоит остановится.

Первый момент – плагин не переводит меню. Чтобы меню таки стало мультиязычным, нам нужно создать в консоли столько меню, сколько у нас языков. Дальше в месте, где мы его выводим, используем следующее условие:

<?php if( 'ru' == pll_current_language() ) : 
 // вызываем руское меню ;
 else :
 // вызываем меню для второго языка ;
 endif; ?>

Второй момент – переключение между языками. Можно, конечно, использовать виджет, а можно вставить вот такую функцию в любом месте темы:

<ul class="lang-menu">
<?php pll_the_languages(array('show_flags' => 0, 'show_names' => 1, 'display_names_as' => 'slug' ));?>
</ul>

Для выделения текущего языка добавляем стили:

.lang-link .current-lang a {color:#fff;}

Третье – перевод отдельных фраз в шаблоне. Здесь мы будем использовать встроенную возможность Polylang переводить строки. По умолчанию это название сайта, описание и форматы времени и даты. Но можно добавить свои строки, которые будут переводиться при переключении языка.
Для этого сначала заведем строку в functions.php темы:

// добавляем строки в полиленг
add_action('init', function() {
  pll_register_string('Описание строки', 'Строка с текстом');
});

После этого в консоли в Languages – Strings translations добавляем тексты с переводом.
Выводим в шаблоне вставкой:

<?php pll_e('Строка с текстом'); ?>

Чтобы вывести ссылку на мультиязычную версию определенного поста, делаем так:

<a href="<?php echo get_permalink(pll_get_post(8)); ?>"><?php echo get_the_title(pll_get_post(8)); ?></a>

Еще один интересный плагин для создания мульязычного сайта на WordPress – WPGlobus.
Там, в принципе, вполне вменяемый виджет переключения языков, его можно добавить через консоль в нужное место. Но бывает, есть необходимость вставить его непосредственно в файлы темы. В этом случае добавляем, например, в header.php вызов виджета таким образом:

<?php the_widget( 'WPGlobusWidget' ); ?>

При такой вставке, виджет вставится с параметрами по умолчанию. Изменить их мы можем, поправив файл wp-content/plugins/wpglobus/includes/class-wpglobus-widget.php. Там в р-не 49-53 строк есть условие типа вывода модуля.

Рубрика: Веброзробка
Позначки:, ,
Коментарі читачів статті "Мультиязычный сайт на WordPress (обновлено)"

Немає коментарів.

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься.

Цей сайт використовує Akismet для зменшення спаму. Дізнайтеся, як обробляються ваші дані коментарів.