SEO · WordPress

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

Замість %d0%b0%d0%b1 в адресі — читабельна латиниця. Один фільтр покриває записи, сторінки, товари, рубрики й імена файлів; наявні адреси конвертуються масово, з відкатом і 301.

Версія
v1.1.0
Сумісність
WordPress 6.2+ · WooCommerce · PHP 7.2+
Платформа
WordPress
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.

Налаштування плагіна All to Lat у WordPress
Один екран у «Налаштуваннях»: стандарт транслітерації, роздільник, довжина і те, до чого правила застосовуються. 301 зі старих адрес — окремий перемикач, він не залежить від статусу.
Попередній перегляд конвертації percent-encoded slug-ів у латиницю
Колонка «Було» — це те, що WordPress записав сам: %d0%ba%d1%80… Колонка «Стане» — те, що побачить покупець і Google. Перегляд шукає саме ті рядки, які треба чіпати, а не перші 25 підряд.

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

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

Інтерфейс плагіна — українською: переклад іде в збірці, окремо нічого ставити не треба.

Що варто знати перед увімкненням

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

Журнал прогонів All to Lat з кнопкою відкату
Кожен прогін лишає рядок у журналі — видно тип, кількість рядків і дату, і кожен відкочується окремо.

Чого плагін не робить

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

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

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

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

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

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

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

Питання щодо модуля?

Пишіть у Telegram — відповімо протягом робочого дня. Допоможемо з налаштуванням, сумісністю та активацією ключа.

@catcode_support

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

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

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