Вирішення проблеми Polylang Redirect Homepage

Чому відбувається редиректит у 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;
}

Профіт, все працює як раніше.