Замечательный плагин RusToLat для WordPress предназначен для транслитерации русских символов URL в английские. Его автор Антон Скоробогатов. Раньше устанавливал этот плагин практически на все сайты, которые работают на движке WordPress. К сожалению, не сразу заметил, что плагин не верно осуществляет транслитерацию русских символов при использовании стандарта ISO 9-95.
Данный стандарт обладает двумя системами транслитерация славянских алфавитов: система А (с использованием диакритики) и система Б (с использованием буквосочетаний). Насколько я понял, в плагине задействована система Б. Одним из недостатков которой, на мой взгляд, является не верное преобразование русской буквы X в латинскую X (икс). Для поисковых систем более приемлемо использование h.
Для того, что бы исправить такое положение вещей, я подредактировал в файл rus-to-lat.php массив $iso и он приобрел следующий вид:
$iso = array(
"Є"=>"YE","І"=>"I","Ѓ"=>"G","і"=>"i","№"=>"#","є"=>"ye","ѓ"=>"g",
"А"=>"A","Б"=>"B","В"=>"V","Г"=>"G","Д"=>"D",
"Е"=>"E","Ё"=>"YO","Ж"=>"ZH",
"З"=>"Z","И"=>"I","Й"=>"J","К"=>"K","Л"=>"L",
"М"=>"M","Н"=>"N","О"=>"O","П"=>"P","Р"=>"R",
"С"=>"S","Т"=>"T","У"=>"U","Ф"=>"F","Х"=>"H",
"Ц"=>"C","Ч"=>"CH","Ш"=>"SH","Щ"=>"SHH","Ъ"=>"'",
"Ы"=>"Y","Ь"=>"","Э"=>"E","Ю"=>"YU","Я"=>"YA",
"а"=>"a","б"=>"b","в"=>"v","г"=>"g","д"=>"d",
"е"=>"e","ё"=>"yo","ж"=>"zh",
"з"=>"z","и"=>"i","й"=>"j","к"=>"k","л"=>"l",
"м"=>"m","н"=>"n","о"=>"o","п"=>"p","р"=>"r",
"с"=>"s","т"=>"t","у"=>"u","ф"=>"f","х"=>"h",
"ц"=>"c","ч"=>"ch","ш"=>"sh","щ"=>"shh","ъ"=>"",
"ы"=>"y","ь"=>"","э"=>"e","ю"=>"yu","я"=>"ya","«"=>"","»"=>"","—"=>"-"
);
Привет! Спасибо за FIX. Один вопрос: на изменение старых URL это не повлияет? Например, после редактировании статьи.
Дмитрий, если не редактировать url самому, то для старых он останется таким, каким и был раньше. Если сомневаетесь, то просто попробуйте отредактировать старую статью и сохранить её.