Решение проблемы Polylang Redirect Homepage

polylang b4m

Почему происходит редиректит в Polylang на другую версию языка? В плагине polylang для wordpress есть один не большой глюк связан с редиректом главной страницы (Polylang Homepage Redirect)

Сайт WordPress, мультиязычность реализована Polylang.
Site.ru автоматически редиректит на site.ru/en. А если включаешь какой-то плагин кеширования то вообще не работают переключатели языков. Google Page Speed при запросе site.ru пишет что «Запрашиваемый URL выполняет переадресацию на следующий URL: site.ru/en/.
На одном из форумов предлагали решение — отключить “Detect browser language” в Polylang. В таком случае переключатели языков работают, но переадресация остается. К тому же эта функция важна.

Решение вопроса Polylang Redirect Homepage:

Заходим в редактор плагинов и выбираем Polylang
переходим к файлу /frontend/frontend-static-pages.php
Находим
/**
* Prevents canonical redirection if we are on a static front page
*
* @since 1.8
*
* @param string $redirect_url
* @return bool|string
*/
public function pll_check_canonical_url( $redirect_url ) {

Заменяем функцию на рабочую
public function pll_check_canonical_url( $redirect_url ) {
return $this->options['redirect_lang'] && ! empty( $this->curlang->page_on_front ) && is_page( $this->curlang->page_on_front ) ? false : $redirect_url;
}

Профит, все работает как раньше.