Что делает поле UID
Поле UID автоматически создаёт идентификатор из другого поля (обычно из названия). Согласно описанию на форуме, результат должен соответствовать шаблону /^[A-Za-z0-9-_.~]*$: то есть только латинские буквы, цифры и несколько знаков.
Что сообщают о кириллице
- На форуме Strapi пользователи пишут, что транслитерация русских и украинских букв во встроенном поле работает неверно, и спрашивают, какая библиотека используется — ответа в найденном обсуждении нет.
- Один из ответов показывает, что параметры slugify можно менять для отдельного поля через
optionsвschema.json(например,"decamelize": false).
Какие есть варианты
- Заполнять UID вручную результатом генератора.
- Подключить плагин: на маркетплейсе Strapi есть плагины с транслитерацией (я их не проверял).
- Вычислять slug на стороне Strapi в хуке создания записи и сохранять его в поле; для этого можно использовать функцию из статьи «Функция транслита на PHP, JavaScript и Python»
Как проверить
Чтобы узнать, как Strapi превращает заголовок в адрес, создайте тестовую страницу с названием «Щёлково цех юг» и сравните результат. Таблица Яндекса даёт shhelkovo-ceh-yug; привычный английский вариант — shchyolkovo-tsekh-yug. Как читать другие результаты — в статье «Транслит Яндекса против встроенного в CMS».
Связанные статьи
Связку Strapi и Next.js описывает статья «ЧПУ в Strapi и Next.js».
Источники
Использованы обсуждения на форуме Strapi: неверная транслитерация в InputUID и странный slug из UID. Это сообщения пользователей, а не официальная документация.
Типичные ошибки
- Полагаться на встроенную транслитерацию без проверки.
- Пытаться хранить в UID кириллицу: шаблон её не допускает.
- Менять UID опубликованной записи без редиректа.
- Подключать плагин без проверки его таблицы.
Пошагово: приводим адреса к единому виду
- Проверьте, как UID преобразует контрольную фразу.
- Решите, оставить встроенный результат или менять.
- Для массового заполнения подготовьте список адресов в генераторе.
- Запишите значения в поле UID.
- При смене UID опубликованных записей настройте редиректы.
Разбор заголовка по шагам
Возьмём заголовок «Как выбрать беговые кроссовки» и пройдём путь до адреса. UID создаётся из названия записи.
Заголовок: Как выбрать беговые кроссовки
Без служебных слов: Как выбрать беговые кроссовки
Адрес целиком: kak-vybrat-begovye-krossovki
Адрес короче: kak-vybrat-begovye-krossovki
Режим «Убрать служебные слова» в генераторе делает второй шаг сам. Короткий адрес читается легче и лучше помещается в строку браузера. Ограничения по длине и другие правила составления адреса собраны в статье «Как составить ЧПУ-адрес страницы».
Памятка для редактора
Если в проекте несколько редакторов, дайте им короткую памятку. Достаточно этих правил:
- UID проверяем контрольной фразой.
- Для схемы Яндекса — вручную или хук.
- Менять UID — с редиректом.
Чек-лист
- Создать запись «Щёлково цех юг» и посмотреть UID.
- Сравнить с таблицей схем.
- Если схема не подходит — вручную или хук.
- Менять UID — с редиректом.
Частые вопросы
Какие символы допускает UID в Strapi?
По обсуждению на форуме — латинские буквы, цифры и знаки - _ . ~.
Правильно ли Strapi транслитерирует русский?
Пользователи сообщают о неточностях. Проверьте на своей версии.
Можно ли настроить slugify для поля?
Да, через options в schema.json (пример — decamelize: false).
Как получить схему Яндекса?
Вручную из генератора или хуком с функцией транслита.
Проверьте свои заголовки: вставьте их в генератор ЧПУ и посмотрите, как в адресе выглядят слова с этой буквой.