Зв'язатись
  • WordPress
  • SEO
  • v1.1.0

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

Замість %d0%b0%d0%b1 в адресі — читабельна латиниця. Один фільтр покриває записи, сторінки, товари, рубрики й імена файлів; наявні адреси конвертуються масово, з відкатом і 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» стає «zvit.pdf», розширення не змінюється. Уже завантажені файли плагін не перейменовує — це порвало б посилання в контенті.

Скільки коштує?

Безкоштовно, без обмежень за кількістю записів чи прогонів.

Чи чіпає конвертація чернетки?

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

Що станеться зі старими адресами, якщо вимкнути транслітерацію після конвертації?

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

Не той варіант, що шукаєте?

Робимо кастомні модулі під WordPress, WooCommerce, OpenCart і Shopify. Розкажіть про задачу — підготуємо оцінку.

Замовити кастомний модуль