Что такое ЗуРуЛат и ЗуРуЕнг ?

Два плагина Судя по картинке вы скорее всего уже догадались, что это два новых моих плагина.

Вообще я как бы уже зарёкся что-либо делать для WordPress. Уж очень он тугой.

Но вот я всё-таки решил делать ещё один блог (не скажу пока какой) и чтобы долго не мучить себя, я решил воспользоваться старым опытом, а вернее старой проверенной версией WordPress 2.3.3. Более поздние версии, я увы не приемлю, т.к. жрут (извиняюсь) не просто как свиньи, а как нахальные свиньи.

И всё бы ничего, но захотелось мне внести новинку, а именно, чтобы URL этого нового сайта были не просто английскими буквами, а именно английскими словами.

Не долго думая, я нашёл плагин, который как раз переводит название и делает полноценно читаемые на английском языке “короткие ссылки”. Но, как обычно без эксцессов не обошлось. Плагин у меня не захотел работать. То ли версия WP 2.3.3 в этом виновата (а в следующих версиях уже работает этот момент по другому), то ли у разработчика просто непомерные ресурсы на хостинге и он особо не заметил вот какой интересный баг. Я расскажу о нём вкратце.

 

Плагин Rus-To-Eng основан на вызове add_action('sanitize_title', 'rte_sanitize_title', 0);

Но в версии 2.3.3 эта конструкция добавляет фильтр, которые запускает функцию 'rte_sanitize_title' 80 раз. Вы представляете? 80 раз!!! Понятное дело, что это баг WordPress. Но факт остаётся фактом. Зная прожорливость WordPress ресурсов хостинга от версии к версии, я предположил, что в следующих версиях эта конструкция запускает функцию не 80, а гораздо большее количество раз.

Самое интересное, что всеми давно пользованный плагин RusToLat от Андрея Серебрякова, тоже использует фильтр на основе sanitize_title и тоже запускает свою главную функцию 80 раз (по крайней мере на WP 2.3.3).

Но в отличии от внутренних действий RusToLat, плагин Rus-To-Eng целых 80 раз отправлял запросы в Google переводчик 😀 . И обычный виртуальных хостинг выдавал ошибку, что мол ваш скриптец такой сурьёзный и длиться дольше 30 секунд.

Итак зная проблему я перелопатил снова кодекс WordPress в поисках ответов и нашёл даже альтернативный плагин, который был сделан в 2009 году.

На имеющихся у меня материалах, я сделал свой плагин, который не запускается 80 раз, т.к. не использует sanitize_title. Кроме того, я выкинул регулярку за ненадобностью, т.к. в WordPress (как оказалось) есть встроенные функции для этого. Так же была добавлено условие при котором, если вдруг Google Translate по каким-либо причинам станет недоступен, то плагин не вешается, а просто возвращает то, что взял.

Так появился плагин (Zu)RuEng

Но веть теперь я зал, что в плагине транслитерации от Андрея Серебрякова, тоже происходит 80 кругов запуска и  я решил сначала исправить его. Но затем просто сократил, добавил проверочную функцию (поглядел, а от старого варианта ничего, кроме ISO не осталось), поэтому так родился второй плагин (Zu)RuLat

Кстати плагины дополняют друг друга, т.е. рекомендуется устанавливать оба. Например если вдруг Гугл транлейт будет не доступен, то из русских букв произойдёт просто транслит в латинские.

Так же я рекомендую отключить всякого рода альтернативы этим плагинам, т.к. возможно “перетягивание одеяла” друг у дружки.

Вот собственно и они:

[dm]21[/dm]

Просьба потестировать на других версиях WordPress и отписаться в комментах.

Что такое ЗуРуЛат и ЗуРуЕнг ?: 4 комментария

  1. Андрей

    Плагин супер. Простой и действенный. У меня просто случилась та же проблема, что и у тебя. Rus-To-Eng намертво ложил блог. Но я не специалист и поэтому через поиск нашёл твой плагин. Поставил на разные версии WP оба плагина. Они и в правду дополняют друг друга. Проверил работоспособность на трёх версиях. На WordPress 2.8.6, на WordPress 3.0.4 и на WordPress 3.1RC2. Всё прекрасно работает. Вообще мне нравится, когда плагины не привязаны к версии. Спасибо.

  2. Renar

    Попробую, попользуюсь.
    А урлы уже опубликованных страниц блога плагин переводом на инглишь не “испортит”?

  3. Renar

    А у меня на WordPress 2.8.6 только (Zu)RuLat заработал. Но только если (Zu)RuEng выключен.. Наверно потому что блог на локалке запущен.

  4. ZUMA Автор записи

    Нет конечно урлы (если они уже есть) плагины не меняют. Переворачивают в транслит или переводят только новые статьи.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

* Защита! Введите ответ на Произведение чисел