+7 (383) 375-22-01
RU EN

Решение проблемы с не латинскими url

Недавно наша студия при разработке сайта для Израильской компании столкнулась с проблемой. Адреса страниц составленные из латинских букв открывались нормально, а кириллические и url на иврите выдавали ошибку 404. Оказалось, что такая проблема не редкость, но готовых вариантов решения мы не нашли. Один из предложенных вариантов убирал ошибку, но требовал вмешательства в файлы WordPress. Мы немножко доработали его в вот такое изящное решение:

add_filter('sanitize_title', 'non_latin_url_bag');

function non_latin_url_bag($title){
        $title = preg_replace( "/%([a-fA-F0-9]{2})/e", "'%'.strtoupper('\\1')", $title);
	return $title;
}

Как видите, это фильтр на функцию sanitize_title(), который устраняет появление 404 ошибки в не латинских url.
Fix for non-latin permalink, remove 404 error.