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 записывает старый ярлык в это метаполе во время массовой обработки записей.
Не работать этот механизм может в силу присутствия каких-то иных плагинов, которые ломают стандартный функционал ядра.