Setting up a redirect on a wordpress site to a language subfolder
Передісторія:
Був сайт без багатомовності. Російською. Було встановлено WPML та налаштовано +1 мову. Після цього було потрібно змінити мову за замовчуванням, але якщо зробити це – дуже багато скриптів виходили з ладу. Тож всі мови перенесені в підпапки, і налаштовано 301 редірект на потрібну мову в випадку, якщо наразі відкрито URL без мовного ярлика.
// Disabling WPML automatic redirect function mytheme_do_not_redirect_city_post_type( $redirect, $post_id, $query ) { return false; }; add_filter( 'wpml_is_redirected', mytheme_do_not_redirect_city_post_type, 10, 3 ); // Enable redirection to the desired language if the language is not in the language URL function redir_to_uk() { if(!is_admin()){ $url = $_SERVER['REQUEST_URI']; $ru = "/ru/"; $uk = "/uk/"; if( ( strpos($url, $ru) === false ) && ( strpos($url, $uk) === false ) ) { header('Location: https://' . $_SERVER['HTTP_HOST'] . '/uk' . $url, true, 301); } } } add_action('parse_request', 'redir_to_uk');
Описаний вище код потрібно додати до файлу functions.php