Связаться
  • WordPress
  • SEO
  • v1.1.0

All to Lat — латинские slug’и транслитерацией для WordPress и WooCommerce

Латинские slug'и транслитерацией для WordPress и WooCommerce: кириллица в ссылках заменяется автоматически, откат и 301-редиректы со старых адресов.

Совместимость
WordPress 6.2+ · WooCommerce · PHP 7.2+

Что умеет модуль

Функция Free
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
Один экран в «Настройках»: стандарт транслитерации, разделитель, длина и то, к чему правила применяются. 301 со старых адресов — отдельный переключатель, он не зависит от статуса.
Предпросмотр конвертации percent-encoded slug-ов в латиницу
Колонка «Было» — это то, что WordPress записал сам: %d0%ba%d1%80… Колонка «Станет» — то, что увидит покупатель и Google. Предпросмотр ищет именно те строки, которые надо трогать, а не первые 25 подряд.
Журнал прогонов All to Lat с кнопкой отката
Каждый прогон оставляет строку в журнале — видно тип, количество строк и дату, и каждый откатывается отдельно.

Главное о модуле

После конвертации ничего не 404-ится

Переименованную запись ведёт WordPress сам — через _wp_old_slug.

Что стоит знать перед включением

Включение влияет только на slug’и, созданные с этого момента.

Чего плагин не делает

Черновики он не трогает.

Технические требования

  • WordPress 6.2 и новее, PHP 7.2 и новее. WooCommerce не обязателен: плагин работает и на обычном блоге, а с Woo — ещё и на товарах, категориях и атрибутах.

История версий

v1.1.0 Текущая

Предпросмотр искал только в первых строках и на сайте со свежим латинским контентом писал «нечего менять», пока счётчик рядом показывал сотни; конвертер записывал slug’и в черновики и…

v1.0.0

Первый выпуск.

Полное описание модуля

All to Lat делает все ссылки сайта латиницей. WordPress строит slug из заголовка — и на украинском заголовке в адресе оседает %d0%b0%d0%b1%d0%b2: в выдаче это выглядит спамно, при копировании в мессенджер или письмо ломается, а читателю не говорит ничего. Плагин транслитерирует заголовок первым, поэтому в адресе стоит upravlinnia-nerukhomistiu.

После конвертации ничего не 404-ится

Переименованную запись ведёт WordPress сам — через _wp_old_slug. Переименованную рубрику или метку он не ведёт: такого механизма для терминов в ядре просто нет, и категория, которая отвечала по старому адресу, начинает отдавать 404 вместе со всеми ссылками на неё. Этот 301 плагин отправляет сам, из собственного журнала, и только для запроса, который уже ничего не нашёл — живую страницу обработчик не трогает.

Интерфейс плагина — на украинском: перевод идёт в сборке, отдельно ничего ставить не надо.

Что стоит знать перед включением

Включение влияет только на slug’и, созданные с этого момента. Существующие адреса меняются только тогда, когда вы сами запустите массовую конвертацию — она предупреждает, показывает предпросмотр и оставляет журнал, который можно откатить.

Чего плагин не делает

Черновики он не трогает. WordPress намеренно держит у черновика пустой slug и подставляет его из заголовка при публикации — если записать адрес сейчас, он застынет на недописанном названии, а откатить его некуда: предыдущего значения просто нет. Поэтому массовая конвертация работает только с тем, что уже имеет адрес.

Зачем это магазину

WordPress берёт slug из заголовка, а если заголовок кириллицей — в него ложится кириллица. В браузере такой адрес выглядит нормально, но стоит его куда-то скопировать, он превращается в %D0%BA%D1%83%D0%BF%D0%B8%D1%82%D0%B8 длиной в экран.

Это бьёт в трёх местах сразу: ссылка в мессенджере выглядит как спам, аналитика показывает нечитаемые URL, а часть внешних сервисов (агрегаторы, маркетплейсы, некоторые почтовые клиенты) такие адреса просто режет.

Как это работает — шаг за шагом

1. Плагин включается и дальше молча перехватывает момент, когда WordPress формирует slug.

2. Заголовок транслитерируется по украинской таблице (стандарт по умолчанию, в настройках его можно сменить) — именно украинской, а не «русской для всех»: і, ї, є, ґ обрабатываются правильно, а щ становится shch, как в паспортном стандарте.

3. Новая запись, товар, категория или тег сразу получает латинский slug. Ничего нажимать не нужно.

4. Для уже опубликованного есть массовая конвертация — за один проход по всему каталогу.

5. Со старых кириллических адресов ставится 301, поэтому позиции в поиске и чужие ссылки не теряются.

Что получает админ

Экран настроек минимальный: стандарт транслитерации, разделитель, длина, к чему применять (slug’и, имена файлов) и отдельная вкладка массовой конвертации, где выбираете, что именно конвертировать. Плагин не добавляет ни виджетов, ни блоков, ничего на фронт.

Slug остаётся обычным полем WordPress — его можно отредактировать руками, и плагин это уважает, а не переписывает обратно при следующем сохранении.

Что под капотом

Транслитерация вешается на штатный фильтр WordPress для slug, а не на JavaScript в форме редактора. Это важно: slug выходит латинским и тогда, когда запись создаёт импорт, REST API или другой плагин, — то есть там, где JS-решение не срабатывает вообще.

301-редиректы хранятся отдельно и не зависят от темы. Выключили плагин — старые адреса рубрик и меток перестают редиректиться (записи и дальше ведёт сам WordPress), но ничего не ломается.

Как установить

1. Загрузите архив в «Плагины → Добавить новый → Загрузить плагин» и активируйте.

2. Проверьте на одной новой записи, что slug вышел латинским.

3. Если каталог уже кириллический — сделайте бэкап базы и запустите массовую конвертацию.

4. Убедитесь, что старые адреса отдают 301 на новые.

Вопросы
о модуле

Не нашли ответ? Напишите в Telegram — ответим в течение рабочего дня.

@catcode_support Настройка, совместимость, активация
Изменятся ли мои нынешние адреса после активации?

Нет. Включение влияет только на slug'и, созданные с этого момента. Существующие адреса меняются только тогда, когда вы сами запустите массовую конвертацию — она предупреждает, показывает предпросмотр и оставляет журнал, который можно откатить.

Старые ссылки после конвертации будут работать?

Да. Записи ведёт сам WordPress через мету _wp_old_slug, которую плагин дописывает; рубрики и метки ведёт плагин из своего журнала. В обоих случаях это 301 — именно то, что нужно поисковым системам, чтобы перенести позиции на новый адрес.

Почему WordPress сам не ведёт переименованную рубрику?

Такого механизма для терминов в ядре просто нет — он существует только для записей. Поэтому категория, переименованная без плагина, начинает отдавать 404 вместе со всеми ссылками на неё.

Работает с WooCommerce?

Да. Товар — это тип записи, а категории товаров — таксономия, поэтому оба проходят через тот же фильтр и оба есть в списке массовой конвертации.

А с многоязычным сайтом?

Да. Плагин транслитерирует тот текст, который ему дали, поэтому каждый язык даёт собственный slug. Стандарт выбирается под ваше письмо — он влияет только на кириллицу.

Что будет с именами файлов в медиатеке?

Новые загрузки сохраняются латиницей: «Отчёт.pdf» становится «otchet.pdf», расширение не меняется. Уже загруженные файлы плагин не переименовывает — это порвало бы ссылки в контенте.

Сколько стоит?

Бесплатно, без ограничений по количеству записей или прогонов.

Трогает ли конвертация черновики?

Нет. У черновика WordPress намеренно держит пустой slug и строит его из заголовка при публикации. Если бы плагин записал адрес сейчас, он застыл бы на недописанном названии, а откатить его было бы некуда — предыдущего значения просто нет.

Что произойдёт со старыми адресами, если выключить транслитерацию после конвертации?

Ничего — 301 управляется собственным переключателем «301 со старых адресов». Выключение транслитерации влияет только на slug'и, которые будут создаваться дальше; уже перенаправленные адреса работают, пока включён редирект.

Не тот вариант, что искали?

Делаем кастомные модули под WordPress, WooCommerce, OpenCart и Shopify. Расскажите о задаче — подготовим оценку.

Заказать кастомный модуль