Cyr-To-Lat — это плагин транслитерации, предназначенный для преобразования ярлыков постов из нескольких кириллических и не латинских языков в латиницу. Чем он отличается от конкурентов?
Поиск по wp.org даёт ряд плагинов транслитерации (отсортированы по убывания числа установок):
- Cyr-To-Lat ( 200,000+ )
- Cyr to Lat enhanced ( 100,000+, устарел )
- Rus-To-Lat ( 100,000+, устарел )
- WP Translitera ( 40,000+, устарел )
- Cyr to Lat reloaded – транслитерация ссылок и файловых имен ( 30,000+, устарел )
- Cyrlitera – транслитерация ссылок и имен файлов ( 20,000+ )
- SrbTransLatin — Serbian Latinisation ( 4,000+, устарел )
- SP RTL (RusToLat) ( 3,000+, устарел )
- Ukr-To-Lat ( 3,000+, устарел )
- German Slugs ( 2,000+, устарел )
- Bulglish Permalinks ( 1,000+, устарел )
- wp-cyr-cho | Конвертира кирилски символи в латиниски ( 1,000+, устарел )
- Serbian Latinisation (Serbian Transliteration) ( 600+, устарел )
- Geo to Lat ( 500+, устарел )
- translit-it ( 300+, устарел )
- HyToLat ( 200+, устарел )
- Rus-to-Eng ( 100+, устарел )
- cyr-to-arabic ( 20+, устарел )
- Behnevis Transliteration ( <10, устарел )
- Custom Transliteration ( <10, устарел )
- RusEng ( <10, устарел )
- Transliterate Arabic ( <10, устарел )
- WP Nice Slug ( <10, устарел )
Мы видим, что большинство плагинов транслитерации более не поддерживаются, и нет никакой гарантии, что они будут работать с последними версиями WordPress. Так и есть — практически все устаревшие плагины не работают с Gutenberg.
Собственно, на этом анализ можно было бы и закончить. Ближайший поддерживаемый конкурент имеет в 10 раз меньшее число установок, что является показателем доверия пользователей и надёжности.
Однако давайте продолжим и оставим для анализа плагины со значимым числом установок ( > 10,000 ) и поддерживаемые, с любым числом установок. Сокращённый список выглядит так:
Название | Число установок | Возможность редактирования таблиц | Языки |
Cyr-To-Lat | 200,000+ | Есть наглядное, в виде таблиц, с добавлением/удалением пар транслитерации | Русский, белорусский, украинский, болгарский, македонский, сербский, греческий, армянский, грузинский, казахский, иврит и китайский |
Cyr to Lat enhanced | 100,000+, устарел | Нет | Русский, украинский и болгарский |
Rus-To-Lat | 100,000+, устарел, весь функционал перенесён в Cyr-To-Lat | Нет | Кириллические, без привязки к текущей локали сайта |
WP Translitera | 40,000+, устарел | Есть неудобное вида я=ja | Русский, украинский, болгарский и грузинский |
Cyr to Lat reloaded | 30,000+, устарел | Есть неудобное вида Ё=Jo,ё=jo,Ж=Zh,ж=zh | Русский, украинский, болгарский, греческий, армянский и сербский |
Cyrlitera | 10,000+ | Есть неудобное вида Ё=Jo,ё=jo,Ж=Zh,ж=zh | Русский, украинский, болгарский, греческий, армянский и сербский |
По числу поддерживаемых языков снова выигрывает Cyr-To-Lat. А уж по удобству редактирования таблиц ему и близко нет равных:

Здесь видно, как можно добавить свою пару транслитерации, состоящую даже из нескольких символов: ‘пиво’ => ‘beer’. По клику на символ ‘+’ можно добавить очередную пару. По клику на кириллическую букву — отредактировать или удалить её из таблицы.
Всего два плагина из этого списка заявляют совместимость с WPML: Cyr-To-Lat и SrbTransLatin. Причём официальный сертификат и подтверждение на сайте wpml.org имеет только Cyr-To-Lat.
Только Cyr-To-Lat совместим с популярным плагином ACF для создания произвольных полей.
Некоторые из приведённых плагинов могут производить массовую конвертацию ярлыков постов и таксономий: Cyr-To-Lat, Cyr to Lat enhanced, WP Translitera, Cyr to Lat reloaded, cyrlitera. При наличии большого числа ярлыков для конвертации этот процесс прерывается в силу ограничений процессорного времени на сервере. И только Cyr-To-Lat осуществляет такую конвертацию через фоновые очереди, что позволяет надёжно преобразовать любое количество ярлыков — даже сотни тысяч и миллионы.
Также, Cyr-To-Lat — единственный плагин в обзоре, который транслитерирует имена файлов вложений и миниатюр при массовой конвертации.
Ни один из плагинов в обзоре, кроме Cyr-To-Lat, не может работать через wp-cli, что является ещё одним надёжным методом массового преобразования ярлыков.
Лишь код Cyr-To-Lat удовлетворяет стандартам кодирования WordPress, что позволяет вести разработку на современном уровне.
Ни один из плагинов в обзоре, кроме Cyr-To-Lat, не имеет тестов. В то время как php и js код Cyr-To-Lat на 100% покрыт тестами, что позволяет поддерживать надёжность плагина на самом высоком уровне.
Код Cyr-To-Lat вместе с тестами и средой разработки доступен сторонним разработчикам на GitHub. Запросы на улучшение кода приветствуются.
Суммируя, можно сказать, что в настоящее время у плагина Cyr-To-Lat просто нет конкурентов, и использование любого другого плагина транслитерации лишено какого-либо смысла. В силу того, что все перечисленные плагины являются в той или иной мере наследниками плагина Rus-To-Lat, созданного Антоном Скоробогатовым, переход с других плагинов на Cyr-To-Lat не вызывает никаких проблем.
У меня стоит именно такой плагин. Очень доволен просто работает как эпл.
Спасибо, нам важно, что пользователи удовлетворены результатами нашей работы.
После массовой обработки записей плагином Cyr to lat удобно было бы автоматически добавить 301 редиректы на новые адреса.
Плагин именно так и работает: https://kagg.eu/wp-content/uploads/2020/05/Cyr2lat-301.jpg
На скриншоте видно, что был введён url со старым ярлыком: ‘http://test.test/пиво’, и после 301 редиректа в браузере показан url ‘http://test.test/pivo-222/’.
Можно узнать, куда плагин прописывает редиректы? Хочу разобраться, почему они не сработали.
В WordPress есть стандартный механизм для старых ярлыков. Любой пост может иметь одно или несколько метаполей ‘_wp_old_slug’, которые содержат в себе старые ярлыки. При обращении к последнему из них ядро сделает 301 переход на текущий ярлык поста.
Вы можете сами посмотреть, как это работает, сменив тему на стандартную, отключив все плагины (в том числе и cyr2lat), и сменив несколько раз ярлык поста. Вы всегда можете увидеть пост не только по текущему, но также и по предыдущему ярлыку. В таблице wp_postmeta вы найдёте все ярлыки в ‘_wp_old_slug’ вашего поста.
Cyr2lat записывает старый ярлык в это метаполе во время массовой обработки записей.
Не работать этот механизм может в силу присутствия каких-то иных плагинов, которые ломают стандартный функционал ядра.