Налаштування плагіна Polylang для багатомовної WordPress
Polylang — безплатна альтернатива WPML для створення багатомовних WordPress-сайтів. Безплатна версія охоплює більшість завдань; платний Polylang Pro додає синхронізацію полів, REST API та підтримку WooCommerce.
Принцип роботи
Polylang не створює окремих сайтів у мережі (як Multisite) — він додає мови як таксономію до існуючих постів, сторінок та користувацьких типів. Кожен пост прив'язується до мови, а переклади пов'язуються один з одним через метадані.
Установка та первинне налаштування
Плагін встановлюється з репозиторію WordPress безплатно. Після активації:
- Languages → Languages → Add language — виберіть зі списку (російська, англійська тощо)
- Polylang автоматично створює мовний URL: підпапки (
/ru/,/en/) або піддомени - Languages → Settings — встановіть мову за замовчуванням, поведінку головної сторінки
Структура URL змінюється у Languages → Settings → URL modifications. Варіант «Directories» (/en/page/) рекомендується для SEO.
Переклад контенту
У списку постів з'являються прапорці мов — значок олівця відкриває існуючий переклад, «+» створює новий. У редакторі збоку (або у Gutenberg через панель) — блок Polylang для вибору мови посту та посилання перекладів інших мов.
Переклад рядків теми
Languages → String Translations
→ Виберіть групу (тема, плагін або користувацька)
→ Введіть переклади для кожної мови
Для реєстрації рядка у PHP:
// Реєстрація рядка при ініціалізації
pll_register_string( 'my-plugin', 'Submit button text', 'my-plugin-strings' );
// Отримання перекладеного рядка в шаблоні
echo pll__( 'Submit button text' );
// Або через e-функцію для виводу
pll_e( 'Submit button text' );
Переклад меню
Polylang дозволяє призначити окреме меню для кожної мови:
Appearance → Menus
→ Створіть меню «Main Menu RU», прив'яжіть до мови «Russian»
→ Створіть меню «Main Menu EN», прив'яжіть до мови «English»
→ Призначте обидва меню одній локації меню теми
Polylang автоматично показує правильне меню залежно від поточної мови.
Програмний API
// Поточна мова
$lang = pll_current_language(); // 'ru', 'en', 'de'
// Мова конкретного посту
$post_lang = pll_get_post_language( $post_id ); // 'ru'
// Отримати ID перекладу посту
$translated_post_id = pll_get_post( $original_post_id, 'en' );
// Домашня сторінка для конкретної мови
$home_en = pll_home_url( 'en' );
// Всі мови сайту
$languages = pll_languages_list(); // ['ru', 'en', 'de']
Віджет переключувача мов
Polylang реєструє віджет «Polylang Language Switcher», який можна додати до будь-якої області. Параметри: показувати прапорці, назви мов, приховувати поточну мову. У Gutenberg — блок «Language Switcher».
Для вставки в довільне місце шаблону:
// Вивести переключувач мов програмно
dynamic_sidebar( 'polylang-language-switcher' );
// Або через функцію (Pro)
pll_the_languages( [
'show_flags' => 1,
'show_names' => 1,
'hide_if_no_translation' => 0,
] );
Polylang Pro та WooCommerce
Безплатна версія офіційно не підтримує WooCommerce — товари, атрибути, способи доставки не перекладаються повністю. Polylang Pro (або додаток Polylang for WooCommerce) додає:
- Переклад товарів, варіацій, атрибутів
- Мовні кошики
- Переклад email-повідомлень WooCommerce
- Синхронізацію запасів між перекладами товару
Обмеження безплатної версії
- Немає синхронізації користувацьких полів між перекладами
- Немає офіційної підтримки WooCommerce
- Немає перекладів через REST API (
/wp-json/polylang/v1/) — лише у Pro
Для невеликого корпоративного сайту без магазину безплатної версії достатньо.
Тимчасові рамки
Налаштування 2–3 мов, переклад існуючого контенту до 30 сторінок, переключувач мов — 1 робочий день. З WooCommerce, користувацькими типами, синхронізацією полів — 2–3 дні (потребує Pro).







