All to Lat — латинские slug’и транслитерацией для WordPress и WooCommerce
Что внутри
- Slug латиницей для записей, страниц, произвольных типов, рубрик и меток
- Товары, категории и атрибуты WooCommerce — тем же фильтром
- Имена загруженных файлов транслитерируются, расширение сохраняется
- Работает для редактора, XML-импорта, REST API и WP-CLI
- Украинский (КМУ 55/2010), русский (BGN/PCGN), болгарский, сербский, белорусский
- Греческий и латиница с диакритикой: pl, cs, sk, de, fr, es, pt, tr, ro, hu, балтийские, скандинавские, vi
- Немецкие умляуты как ae/oe/ue — отдельной опцией
- Массовая конвертация существующих адресов батчами с предпросмотром
- Журнал изменений и откат прогона одним кликом
- 301 для переименованных рубрик и меток, которые WordPress не ведёт сам
- Бесплатный
All to Lat делает все ссылки сайта латиницей. WordPress строит slug из заголовка — и на украинском заголовке в адресе оседает %d0%b0%d0%b1%d0%b2: в выдаче это выглядит спамно, при копировании в мессенджер или письмо ломается, а читателю не говорит ничего. Плагин транслитерирует заголовок первым, поэтому в адресе стоит upravlinnia-nerukhomistiu.


После конвертации ничего не 404-ится
Переименованную запись ведёт WordPress сам — через _wp_old_slug. Переименованную рубрику или метку он не ведёт: такого механизма для терминов в ядре просто нет, и категория, которая отвечала по старому адресу, начинает отдавать 404 вместе со всеми ссылками на неё. Этот 301 плагин отправляет сам, из собственного журнала, и только для запроса, который уже ничего не нашёл — живую страницу обработчик не трогает.
Интерфейс плагина — на украинском: перевод идёт в сборке, отдельно ничего ставить не надо.
Что стоит знать перед включением
Включение влияет только на slug’и, созданные с этого момента. Существующие адреса меняются только тогда, когда вы сами запустите массовую конвертацию — она предупреждает, показывает предпросмотр и оставляет журнал, который можно откатить.

Чего плагин не делает
Черновики он не трогает. WordPress намеренно держит у черновика пустой slug и подставляет его из заголовка при публикации — если записать адрес сейчас, он застынет на недописанном названии, а откатить его некуда: предыдущего значения просто нет. Поэтому массовая конвертация работает только с тем, что уже имеет адрес.
История версий
1.1.0 — предпросмотр искал только в первых строках и на сайте со свежим латинским контентом писал «нечего менять», пока счётчик рядом показывал сотни; конвертер записывал slug’и в черновики и откатить их было невозможно; 301 для переименованных рубрик умирал, как только выключали транслитерацию новых ссылок — теперь у него собственный переключатель; если один адрес имели и рубрика, и метка, оба старых адреса вели на одну из них — теперь решает путь запроса; «Откатить» стирал строку журнала даже тогда, когда slug не удалось вернуть, и забирал с ней редирект; долгий прогон молча останавливался на потолке батчей — теперь говорит, где остановился, и продолжает с того места. Счётчики считает база, а не PHP (страница настроек на большом каталоге больше не тормозит), скрипт и стили админки вынесены в файлы. Минимальная версия WordPress — 6.2.
1.0.0 — первый выпуск.
Частые вопросы
Изменятся ли мои нынешние адреса после активации?
Нет. Включение влияет только на slug'и, созданные с этого момента. Существующие адреса меняются только тогда, когда вы сами запустите массовую конвертацию — она предупреждает, показывает предпросмотр и оставляет журнал, который можно откатить.
Старые ссылки после конвертации будут работать?
Да. Записи ведёт сам WordPress через мету _wp_old_slug, которую плагин дописывает; рубрики и метки ведёт плагин из своего журнала. В обоих случаях это 301 — именно то, что нужно поисковым системам, чтобы перенести позиции на новый адрес.
Почему WordPress сам не ведёт переименованную рубрику?
Такого механизма для терминов в ядре просто нет — он существует только для записей. Поэтому категория, переименованная без плагина, начинает отдавать 404 вместе со всеми ссылками на неё.
Работает с WooCommerce?
Да. Товар — это тип записи, а категории товаров — таксономия, поэтому оба проходят через тот же фильтр и оба есть в списке массовой конвертации.
А с многоязычным сайтом?
Да. Плагин транслитерирует тот текст, который ему дали, поэтому каждый язык даёт собственный slug. Стандарт выбирается под ваше письмо — он влияет только на кириллицу.
Что будет с именами файлов в медиатеке?
Новые загрузки сохраняются латиницей: «Отчёт.pdf» становится «otchet.pdf», расширение не меняется. Уже загруженные файлы плагин не переименовывает — это порвало бы ссылки в контенте.
Сколько стоит?
Бесплатно, без ограничений по количеству записей или прогонов.
Трогает ли конвертация черновики?
Нет. У черновика WordPress намеренно держит пустой slug и строит его из заголовка при публикации. Если бы плагин записал адрес сейчас, он застыл бы на недописанном названии, а откатить его было бы некуда — предыдущего значения просто нет.
Что произойдёт со старыми адресами, если выключить транслитерацию после конвертации?
Ничего — 301 управляется собственным переключателем «301 со старых адресов». Выключение транслитерации влияет только на slug'и, которые будут создаваться дальше; уже перенаправленные адреса работают, пока включён редирект.
Вопросы по модулю?
Пишите в Telegram — ответим в течение рабочего дня. Поможем с настройкой, совместимостью и активацией ключа.
Пока ни одного отзыва. Будь первым — ниже.
Оставить отзыв
Отзыв модерируется перед публикацией — обычно это занимает до 24 часов.
Пока вопросов нет. Спроси — мы ответим в течение 24 часов.
Задать вопрос
Обычно отвечаем в течение 24 часов в рабочее время.
Покупка модуля
—