Вступ
У багатьох проєктах на WordPress постає потреба перекладати не лише стандартні елементи інтерфейсу (заголовки, меню, контент), а й власні, кастомні рядки, які розташовані, наприклад, у футері або хеадері. Плагін Polylang — один з найпопулярніших інструментів для реалізації мультимовності. Проте він не має вбудованої підтримки кастомних рядків, які б автоматично підлягали перекладу. У цій статті розглянемо, як вручну зареєструвати власні перекладні поля за допомогою Polylang.
Polylang — це плагін для WordPress, який дозволяє створювати багатомовні сайти. Користувач може перекладати пости, сторінки, медіафайли, категорії, теги тощо. Основні особливості плагіна:
- Простий інтерфейс для додавання перекладів.
- Підтримка багатьох мов.
- Інтеграція з популярними темами та плагінами.
- Підтримка мовного перемикача на сайті.
Обмеження Polylang:
- Кастомні рядки, додані напряму до шаблону, не перекладаються автоматично.
- Для перекладу таких рядків потрібно вручну зареєструвати їх у системі.
Реєстрація кастомних рядків для перекладу
Щоб зареєструвати декілька рядків, потрібно відредагувати файл functions.php. Я використовую тему twentytwentytwo, тому файл знаходиться там: /var/www/html/wp-content/themes/twentytwentytwo/functions.php
Я підключився до свого сервера та редагував файл за допомогою nano редактора:
sudo nano /var/www/html/wp-content/themes/twentytwentytwo/functions.php
Я створив список полів, щоб полегшити подальше розгалуження. Я розміщую код функції php у кінці файлу:
// Add Polylang translate function
function register_custom_polylang_strings() {
$strings = [
'Custom 1:' => 'Custom Labels',
'Custom 2:' => 'Custom Labels',
'Custom 3:' => 'Custom Labels',
'Custom 4:' => 'Custom Labels',
'Custom 5:' => 'Custom Labels'
];
foreach ( $strings as $string => $group ) {
pll_register_string( sanitize_title($string), $string, $group );
}
}
add_action('init', 'register_custom_polylang_strings');
У майбутньому ви можете змінити ці поля, щоб ідентифікувати переклад. Це лише зразок. Після збереження файлу та перезавантаження сторінки ви зможете побачити ці поля у списку перекладів.

Створення шорткоду для перекладу
Простий спосіб отримати дані перекладу – створити короткий код перекладу. Додайте шорткод до того самого functions.php для відображення зареєстрованих рядків
function pll_translate_shortcode($atts) {
$atts = shortcode_atts([
'text' => '',
], $atts);
return pll__($atts['text']);
}
add_shortcode('tr', 'pll_translate_shortcode');
Вам потрібно зберегти цей файл і перезавантажити сторінку адміністратора WordPress, щоб побачити зміни.
У цьому випадку ми будемо використовувати такий короткий код:
[tr text="Custom 1:"]
Застереження: якщо ви змінюєте назву поля у функції, вам потрібно змінити її в wordpress, де ви її використовуєте.
Додавання перекладу
- Перейдіть у Languages → Translations в адмін-панелі.
- Знайдіть групу
Custom Labels
. - Знайдіть рядок (наприклад,
custom-1:
). - Введіть переклади:
- Українською:
Перемикач мов:
- Англійською:
Language switcher
- Українською:
- Збережіть зміни.

Використання у шаблоні
Використовуйте шорткод у будь-якому місці теми, наприклад у футері:
[tr text="Custom 1:"]
Збережіть шаблон і перезавантажте сторінку, щоб побачити результат. Це ідеально.

Результат виглядає як для української та англійської мов. Далі ви можете використовувати власний стиль, щоб змінити дизайн цього блоку.


Висновок
Polylang не має вбудованої підтримки кастомних рядків перекладу, але це легко виправити вручну, зареєструвавши потрібні рядки через functions.php
та використовуючи шорткоди. Такий підхід дозволяє додавати локалізований функціонал навіть у складні кастомні шаблони без втрати контролю над контентом.