WPCourse

Как создать многоязычный сайт на WordPress с помощью Polylang

Сегодня создание многоязычного сайта — частая задача для разработчиков и владельцев сайтов на WordPress. Один из популярных и бесплатных способов реализовать мультиязычность — использовать плагин Polylang. В этой статье подробно разберём, как правильно его настроить, перевести контент, организовать навигацию и обеспечить SEO-оптимизацию.

Что такое Polylang и почему стоит его выбрать

Polylang — один из самых популярных плагинов для создания многоязычного WordPress-сайта. Он позволяет создавать переводы записей, страниц, категорий, тегов и других таксономий, а также переводить меню и виджеты. Плагин бесплатный и достаточно лёгкий, при этом поддерживает SEO-настройки и совместим с большинством тем и плагинов.

Преимущества Polylang:

  • Не требует сложных настроек и не влияет на производительность сайта.
  • Позволяет создавать неограниченное количество языков.
  • Поддерживает перевод пользовательских типов записей и таксономий.
  • Интегрируется с популярными SEO-плагинами, например, Yoast SEO.

Установка и базовая настройка Polylang

Для начала установите плагин через админку WordPress: Плагины > Добавить новый > Polylang, затем активируйте его.

После активации перейдите в Языки > Языки и добавьте необходимые языки для сайта. Здесь можно задать код языка (например, ru, en), локаль и флаг для визуального обозначения.

Важно правильно настроить URL для языков — лучше использовать разные каталоги, например, site.ru/ru/ и site.ru/en/. Это удобно и для пользователей, и для поисковиков.

Настройка URL языков

Перейдите в Языки > Настройки и в разделе «URL языков» выберите «Размещение в каталоге для каждого языка». Это создаст структуру с подкаталогами, что хорошо для SEO.

Создание и перевод записей и страниц

После настройки языков при создании новой записи или страницы вы увидите опцию для добавления перевода на другие языки.

Например, создаём страницу «О компании» на русском языке. Чтобы добавить английский вариант, нажмите на плюсик рядом с английским флагом, введите перевод и опубликуйте.

Это позволяет не дублировать URL, а создавать отдельные версии с привязкой к языкам, что удобно для управления контентом.

Пример кода для вывода языка текущей страницы

<?php
function wpcourse_get_current_language() {
    if ( function_exists('pll_current_language') ) {
        return pll_current_language();
    }
    return 'not-defined';
}
?>

<p>Текущий язык: <?php echo wpcourse_get_current_language(); ?></p>

Этот код можно использовать в шаблонах темы для условного вывода контента или стилей в зависимости от языка.

Перевод меню и виджетов

Polylang позволяет создавать отдельные меню для каждого языка. В Внешний вид > Меню создайте меню для каждого языка, а затем в настройках меню укажите соответствующий язык. Это гарантирует, что посетители увидят меню на своем языке.

Для виджетов перевод работает через стандартные виджеты WordPress — можно создавать разные виджеты с разным языком и показывать их условно с помощью кода:

<?php
if ( function_exists('pll_current_language') ) {
    $lang = pll_current_language();
    if ( $lang === 'ru' ) {
        dynamic_sidebar('sidebar-ru');
    } elseif ( $lang === 'en' ) {
        dynamic_sidebar('sidebar-en');
    }
}
?>

SEO для многоязычного сайта с Polylang

Для корректной индексации поисковиками важно правильно настроить атрибуты hreflang и sitemap. Polylang автоматически добавляет hreflang на страницы, если тема корректно использует wp_head().

Советуем дополнительно установить SEO-плагин, например, Clearfy Pro, который отлично работает с Polylang и поможет оптимизировать сайт.

Также убедитесь, что в файле robots.txt нет запретов для каталогов языков, а карта сайта содержит ссылки на все языковые версии.

Решение типичных проблем при работе с Polylang

Перевод меню не отображается

Если переводы меню не показываются, проверьте, что для каждого языка создано отдельное меню и в настройках меню выбран правильный язык. Также убедитесь, что в шаблоне используется wp_nav_menu() без жёстко заданного меню.

Некорректное перенаправление на язык по умолчанию

Иногда при заходе на сайт без указания языка пользователь не попадает на язык браузера. Для решения можно добавить в functions.php следующий код:

<?php
function wpcourse_redirect_to_browser_language() {
    if ( !is_admin() && !is_user_logged_in() && !isset($_COOKIE['pll_language_redirect']) ) {
        $browser_lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
        $available_langs = pll_get_the_languages(array('raw'=>1));
        foreach ($available_langs as $lang) {
            if ($lang['slug'] === $browser_lang) {
                wp_redirect(home_url('/'.$browser_lang.'/'));
                exit;
            }
        }
        setcookie('pll_language_redirect', '1', time()+3600*24, '/');
    }
}
add_action('template_redirect', 'wpcourse_redirect_to_browser_language');
?>

Этот код перенаправляет пользователя на языковую версию, соответствующую языку браузера, при первом заходе.

Заключение: лучшие практики и рекомендации

Polylang — мощный и гибкий инструмент для создания многоязычных сайтов на WordPress. Главное — правильно настроить языки, URL и перевод контента, а также позаботиться об SEO.

Для удобства управления и расширенной функциональности можно рассмотреть платную версию Polylang Pro или интеграцию с WPGPT для автоматического перевода контента с помощью ИИ.

Такой подход позволит быстро и качественно запустить многоязычный проект, отвечающий требованиям пользователей и поисковых систем.

×

AI-плагин

WPGPT
Сам создает статьи для вашего сайта WordPress

SEO и мета-теги

Парсинг конкурентов

Изображения

Комментарии

Подробнее