В современном мире многоязычность сайта — важный фактор для расширения аудитории и улучшения SEO. WordPress предоставляет множество инструментов для организации многоязычности, и одним из самых популярных бесплатных плагинов является Polylang. В этой статье мы рассмотрим, как правильно настроить и использовать Polylang для создания многоязычного сайта на WordPress, разберём основные нюансы и приведём примеры кода для расширения функционала.
Почему стоит выбрать Polylang для многоязычности
Polylang — это легкий и удобный плагин, который позволяет создавать сайты с несколькими языками без необходимости использовать отдельные установки WordPress. Вот его основные преимущества:
- Простота использования и настройки.
- Поддержка SEO-дружественных URL для каждого языка.
- Совместимость с большинством популярных тем и плагинов.
- Возможность перевода постов, страниц, меню, виджетов и таксономий.
- Бесплатная версия покрывает базовые потребности, а платная добавляет функции синхронизации и автоматического перевода.
Для сайтов, которые требуют многоязычность без излишних сложностей, Polylang — отличный выбор.
Установка и базовая настройка Polylang
Для начала установим и активируем плагин Polylang через админку WordPress или вручную:
1. Перейдите в раздел «Плагины» > «Добавить новый».<br>2. Введите в поиске «Polylang».<br>3. Установите и активируйте плагин.После активации появится новый раздел «Языки» в меню. Добавим необходимые языки:
- Перейдите в «Языки» > «Языки».
- Нажмите «Добавить новый язык».
- Выберите язык из списка, например, Русский, Английский.
- Укажите код языка, направление текста и флаг (по желанию).
- Сохраните.
Теперь при создании или редактировании записи в редакторе появится возможность указать язык записи и связать её с переводом.
Создание переведённых записей и страниц
Для каждой записи или страницы нужно создать отдельные версии для каждого языка. В редакторе WordPress справа появится блок выбора языка и кнопки для добавления перевода.
Пример: у вас есть страница «О компании» на русском, чтобы добавить английский перевод:
- Откройте страницу «О компании» (русская версия).
- В блоке «Язык» нажмите «+» рядом с английским.
- Создайте новую страницу, введите перевод и опубликуйте.
Таким образом, записи связываются между собой по языкам.
Перевод меню и виджетов
Для корректного отображения меню на разных языках используйте раздел «Внешний вид» > «Меню»:
- Создайте отдельное меню для каждого языка.
- В настройках меню укажите язык, которому оно принадлежит.
- В виджетах добавьте меню переключения языков — Polylang предоставляет специальный виджет «Переключатель языков».
Так посетители смогут легко переключаться между версиями сайта.
Пример кода: вывод переключателя языков в шаблоне
Если вы хотите вывести переключатель языков в любом месте темы, используйте функцию pll_the_languages(). Вот пример простого вызова в файле header.php или другом шаблоне:
<?php<br>if ( function_exists( 'pll_the_languages' ) ) {<br> pll_the_languages( array( 'show_flags' => 1, 'show_names' => 1 ) );<br>}<br>?>Параметры:
show_flags— показывать ли флаги (1 — да, 0 — нет).show_names— показывать ли названия языков.
Эта функция выводит переключатель с ссылками на текущую страницу на других языках.
Автоматическая синхронизация и дополнительные возможности
Polylang позволяет не только создавать переводы, но и синхронизировать некоторые поля между языками, например, таксономии, произвольные поля и др. Для этого можно использовать дополнительные фильтры и хуки.
Пример синхронизации пользовательского поля wpone_sync_custom_field:
function wpone_sync_custom_field( $post_id, $post ) {<br> if ( 'post' !== $post->post_type ) {<br> return;<br> }<br> $field_value = get_post_meta( $post_id, 'custom_field_key', true );<br> $translations = pll_get_post_translations( $post_id );<br> foreach ( $translations as $lang => $translation_id ) {<br> if ( $translation_id !== $post_id ) {<br> update_post_meta( $translation_id, 'custom_field_key', $field_value );<br> }<br> }<br>}<br>add_action( 'save_post', 'wpone_sync_custom_field', 10, 2 );Этот код при сохранении записи копирует значение произвольного поля custom_field_key на все переводы записи.
Советы по SEO для многоязычного сайта на Polylang
Чтобы поисковые системы правильно индексировали разные языковые версии сайта, учтите следующие рекомендации:
- Включите в настройках Polylang опцию SEO-френдли URL — язык в URL (например,
site.ru/en/для английской версии). - Используйте плагин Yoast SEO или аналогичный, который совместим с Polylang.
- Добавьте теги
hreflang— Polylang автоматически вставляет их в заголовок. - Избегайте дублирования контента, создавая уникальные переводы.
- Настройте карту сайта, которая включает все языковые версии (Yoast SEO поддерживает это).
Альтернативы Polylang и их особенности
Хотя Polylang отлично подходит для большинства задач, существуют и другие решения:
- WPML — платный плагин с расширенными функциями, удобный для крупных проектов с поддержкой множества языков и профессиональным переводом.
- TranslatePress — визуальный редактор переводов прямо на сайте, удобен для простого перевода интерфейса и контента.
- Weglot — SaaS-решение с автоматическим переводом и интеграцией, но с подпиской.
Если Polylang по каким-то причинам не подходит, рассмотрите эти варианты.
Заключение
Создание многоязычного сайта на WordPress с помощью Polylang — задача вполне выполнимая даже для разработчиков со средним уровнем навыков. Главное — чётко настроить языки, корректно связывать переводы, адаптировать меню и виджеты, а также позаботиться об SEO. Приведённые примеры и советы помогут вам избежать типичных ошибок и сделать сайт удобным для посетителей на разных языках.
Для расширения функционала и улучшения пользовательского опыта вы можете изучить дополнительные плагины и интеграции, например, Expert Review для обзоров на разных языках или тему Root с поддержкой многоязычности.