Среди моих проектов есть небольшой долгожитель — translit it!. Это плагин для WordPress, который делает латинские адреса из русских названий. В конце октября вернулся к его развитию: обновил настройки, обработку запросов и интерфейс. Сейчас доступна версия 1.9.1 с русской локализацией.
Маленький инструмент для своих сайтов
В каталоге WordPress плагин появился ещё в июле 2012 года. Я делал его для себя: хотелось, чтобы у русскоязычных записей получались удобные адреса без постоянного ручного редактирования.
Задача простая. У записи остаётся заголовок «Привет, мир!», а часть адреса можно получить в виде privet-mir. Плагин работает и со страницами, рубриками и другими элементами таксономий.
В итогах мая 2023 года я уже рассказывал о нём: тогда добавлял Яндекс Cloud и писал, что код хорошо бы переработать основательнее. В этот раз до такой переработки наконец дошли руки.
Что он делает сейчас
В основе остаётся локальная транслитерация: русские буквы заменяются латинскими по выбранной таблице. Есть обычный и исторический ISO-подобный варианты. Для этого не нужны API-ключи или внешний переводчик, названия обрабатываются на самом сайте.
Если хочется получать адреса с английским переводом названия, можно отдельно подключить Яндекс. Это необязательный режим со своим API-ключом. Исходный текст в таком случае отправляется сервису перевода, поэтому для обычной локальной транслитерации я бы начинал с локального режима.
Резервную транслитерацию можно включить на случай ошибки перевода. Тогда недоступность внешнего сервиса не мешает получить латинский slug.
Что изменилось в последних версиях
Начал с обработки настроек. В линейке 1.8 переработал сохранение параметров: права доступа, проверку запросов, проверку входных данных и вывод значений. Эта работа включала исправление проблемы CSRF и stored XSS, указанной в истории изменений плагина.
Также обновил работу с переводчиком: ограничил ожидание ответа и повторные обращения после сбоя в рамках одного запроса WordPress. Обычная локальная транслитерация сохранила прежние таблицы.
В 1.9.0 появился новый экран настроек: карточки режимов, пример будущего адреса и отдельный блок подключения Яндекса. Сохранённый ключ больше не выводится обратно в страницу: его можно оставить, заменить или явно удалить.

В 1.9.1 добавил английские исходные строки и полный русский перевод интерфейса. Русский перевод уже лежит внутри плагина и работает без ожидания отдельного языкового пакета каталога. Язык берётся из настроек WordPress для администратора.
Что важно при обновлении
Текущая версия рассчитана на WordPress 7.1 и новее, PHP 8.4 и новее. На старом окружении сначала нужно разобраться с совместимостью.
Существующие адреса плагин массово не переписывает. При этом ручное изменение или повторное создание slug по-прежнему может изменить ссылку — это важно учитывать при работе со старыми записями.
Где взять
Плагин снова доступен в каталоге WordPress.org. Исходники и релизы теперь есть в репозитории на GitHub, а описание возможностей и историю развития собрал на отдельной странице проекта.
Мне приятно возвращаться к таким небольшим инструментам. У него одна понятная задача, и хочется, чтобы она решалась предсказуемо, с удобными настройками и нормальной поддержкой современного WordPress.
