Мультиязычный сайт на WordPress (обновлено)
Для создания мультиязычного веб-сайта на 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 строк есть условие типа вывода модуля.
Немає коментарів.