Как настроить транслитерацию имён файлов в WordPress при загрузке фото?

transliteraciya imeni fajla wordpress cover Без рубрики
Пошагово: Cyrlitera или Cyr-To-Lat, тестовый upload с русским именем, проверка URL в медиатеке. Почему sanitize_file_name не даёт латиницу и что делать со старыми файлами.

Андрей заливает портфолио с телефона: «Кухня_Иваново_01.jpg» в медиатеке даёт длинную ссылку с процентами — клиенту неудобно копировать. Страх понятен: кириллица в имени файла якобы сломает сайт после переноса хостинга. На деле хватает одной настройки при загрузке: плагин транслитерации переведёт буквы в латиницу, и новые фото откроются по адресу вроде foto-kuhnya.jpg.

WordPress сам не переводит кириллицу в латиницу при загрузке: встроенная очистка имени файла убирает опасные символы и пробелы, но русское имя часто остаётся как есть. Для автоматической транслитерации вложений при upload ставят Cyrlitera или Cyr-To-Lat, включают опцию имён файлов и lowercase, отключают второй такой же плагин. Старые файлы с кириллицей сами не переименуются — откат в настройках восстанавливает адреса записей, а не имена в медиатеке.

Транслитерация адреса записи и имени файла в медиатеке — разные задачи. Ниже: что делает ядро WordPress, какой плагин поставить без кода и как проверить upload за пару минут. Про порядок в библиотеке — в материале медиабиблиотека WordPress.

Содержание
  1. Разберите, зачем латиница в адресе картинки, а не только в заголовке статьи
  2. Поймите, что WordPress делает с именем файла «из коробки»
  3. Выберите плагин транслитерации вместо кода в functions.php
  4. Установите Cyrlitera и включите транслитерацию вложений
  5. Проверьте тестовым фото, что настройка сработала
  6. Спланируйте судьбу старых файлов с кириллицей в медиатеке
  7. Избегите типичных ошибок: два плагина, FTP и импорт товаров
  8. Дополните транслит alt-текстом и подписью для людей
  9. Частые вопросы
  10. Ломается ли кириллица в имени файла на всех хостингах одинаково?
  11. Нужен ли именно Cyr-To-Lat, если уже стоит Cyrlitera?
  12. Переименуются ли старые файлы в медиатеке после включения плагина?
  13. Что будет с уже опубликованными статьями, где стоят старые картинки?
  14. Влияет ли транслит имени файла на скорость сайта?
  15. Можно ли обойтись без плагина?
  16. Чем транслит при загрузке отличается от «переименовать медиа»?

Разберите, зачем латиница в адресе картинки, а не только в заголовке статьи

Схема на карточках: slug записи и URL картинки — разные вещи

Длинный URL с кодами вроде %D0%BF%D1%80 пугает клиента и хуже читается в аналитике. Латинское имя — короткий путь: проще отправить ссылку в мессенджер. Типичная ошибка — путать slug записи и адрес вложения: для фото с телефона нужна транслитерация имён при загрузке.

Поймите, что WordPress делает с именем файла «из коробки»

Чеклист на столе: что ядро WordPress делает с именем файла без плагина

При загрузке WordPress вызывает sanitize_file_name (очистка имени): убирает опасные символы и пробелы. Кириллица не обязана стать латиницей — браузер часто показывает закодированный адрес. Плагины translit цепляются к фильтру sanitize_file_name и подменяют буквы. Ждать, что ядро сделает всё само, не стоит; BEA Sanitize Filename только чистит, но не переводит кириллицу.

Схема при загрузке фото:

Файл с телефона → WordPress очищает имя → фильтр sanitize_file_name → плагин translit (если включён) → файл сохраняется в uploads с латинским именем → в медиатеке «Скопировать URL» даёт читаемый путь

Выберите плагин транслитерации вместо кода в functions.php

Карточки Cyrlitera и Cyr-To-Lat на столе — выбор плагина транслита

На shared-хостинге безопаснее плагин из WordPress.org, чем сниппет в functions.php: ошибка в коде может заблокировать админку. В реальном проекте хватает одного из двух вариантов ниже.

Инструмент Транслит имён файлов при upload Кому подходит
Cyrlitera (Themeisle) Да, новые вложения; опция lowercase Нужен простой интерфейс на русском, 40k+ установок, версия 1.3.7 (2026-09-30)
Cyr-To-Lat Да, attachment file names; фильтр ctl_pre_sanitize_filename Нужна альтернатива и WP-CLI команда regenerate для продвинутой поддержки
Сниппет в functions.php Да, если правильно повесить на sanitize_file_name Только если хостинг запрещает плагины; обязателен бэкап и тест на копии сайта
Phoenix Media Rename и аналоги Нет, это переименование уже загруженного Когда старые имена уже в базе и их надо менять вручную

Итоговый вердикт: для первой настройки возьмите Cyrlitera или Cyr-To-Lat, не ставьте оба сразу. Код в теме — запасной путь для опытных, не для «просто залить 30 фото с телефона».

Установите Cyrlitera и включите транслитерацию вложений

Перед первым экспериментом сделайте резервную копию сайта или проверьте на копии (staging). Настройте транслит вложений до тестовой загрузки — так вы быстрее увидите результат в медиатеке. Если лимит загрузки мешает тесту, смотрите как увеличить лимит загрузки файлов в WordPress.

  1. Шаг 1. В админке откройте Плагины → Добавить новый, в поиске введите Cyrlitera (или Cyr-To-Lat), установите и активируйте.
  2. Шаг 2. Откройте Настройки → Cyrlitera (у Cyr-To-Lat — свой пункт меню настроек).
  3. Шаг 3. Убедитесь, что включена транслитерация имён файлов при загрузке (attachment), а не только slug записей.
  4. Шаг 4. При желании включите приведение имён к нижнему регистру (lowercase), чтобы не путать Foto.jpg и foto.jpg.
  5. Шаг 5. Если раньше стоял другой плагин translit, деактивируйте его — два обработчика дают двойную транслитерацию или конфликт.
  6. Шаг 6. Сохраните настройки.

Проверьте тестовым фото, что настройка сработала

Не заливайте сразу всё портфолио.

Один файл с русским именем покажет, работает ли цепочка upload → translit → URL: подготовьте картинку вроде фото-кухня.jpg, залейте через Медиафайлы → Добавить новый, откройте запись и нажмите «Скопировать URL». Вставьте ссылку в новую вкладку — картинка должна открыться без 404, а в пути будут латиница и дефисы (foto-kuhnya.jpg), без цепочки %D0.

Результат, который вы получите сегодня: загрузка «фото-кухня.jpg» даёт foto-kuhnya.jpg, URL открывается, в плагине включена транслитерация вложений.

Спланируйте судьбу старых файлов с кириллицей в медиатеке

Часто ломается ожидание «нажму откат и всё вернётся». У Cyrlitera в FAQ указано: откат восстанавливает URL записей, но не переименовывает уже сохранённые файлы в uploads. Старые русские имена останутся, пока вы их отдельно не переименуете плагином типа Phoenix Media Rename или не перезальёте картинки и не обновите вставки в статьях.

План: новые фото — через translit; старые не трогать без списка вставок; перед массовым rename — бэкап. Перенос сайта — перенос WordPress на другой хостинг.

Избегите типичных ошибок: два плагина, FTP и импорт товаров

Два активных плагина translit — частая причина «странных» имён и сбоев при импорте CSV или загрузке товаров WooCommerce. Оставьте один. Ручное переименование файла по FTP без замены ссылок в базе данных ломает картинки в уже опубликованных статьях — WordPress в тексте хранит старый путь.

*Instagram,Facebook (принадлежит компании Meta, признанной экстремистской и запрещённой на территории РФ)

Имя латиницей не заменяет безопасность формата — для SVG см. загрузку SVG в WordPress. Редиректы slug настраивайте отдельно от медиа; старые вложения не трогайте без учёта вставок в статьях.

Дополните транслит alt-текстом и подписью для людей

Alt-текст и подпись пишите по-русски для людей, а не копируйте foto-kuhnya.jpg. Правило команды: на телефоне файлы можно не переименовывать — латиницу сделает WordPress при upload.

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

Материал проверен: Андрей Дикий (создаёт сайты и продвигает их статьями, SEO/GEO).
Источники и проверка фактов: WordPress Developer Reference sanitize_file_name и хук sanitize_file_name; страницы плагинов Cyrlitera 1.3.7 и Cyr-To-Lat на WordPress.org; FAQ Cyrlitera про откат имён файлов; readme mihdan/cyr2lat на GitHub; wp-image-editor.com про кириллицу в именах; Themeisle Docs по Cyrlitera. Частотность запросов: Яндекс Вордстат на 2026-10-11, MCP недоступен, точные показы не получены.

Частые вопросы

Ломается ли кириллица в имени файла на всех хостингах одинаково?

Чаще проблема не в «злом хостинге», а в том, как браузер и почта показывают закодированный URL и как переносили сайт. Латиница в имени файла снижает сюрпризы при копировании ссылок и переносе. Для новых загрузок проще включить translit, чем лечить каждый кейс вручную.

Нужен ли именно Cyr-To-Lat, если уже стоит Cyrlitera?

Нет, достаточно одного плагина с включённой транслитерацией вложений. Второй дублирует работу и может конфликтовать. Выберите тот, чьи настройки вам понятнее, и отключите остальные translit-плагины.

Переименуются ли старые файлы в медиатеке после включения плагина?

Нет, автоматически при включении они обычно не меняются. Плагин действует на новые upload. Старые имена правят отдельным инструментом переименования медиа или перезаливкой с обновлением вставок в статьях.

Что будет с уже опубликованными статьями, где стоят старые картинки?

Пока вы не меняете путь к файлу в базе, статьи продолжают показывать старые URL. Транслит на новых загрузках не ломает опубликованный контент. Массовое переименование без плана — вот что даёт битые картинки.

Влияет ли транслит имени файла на скорость сайта?

Практически нет: один раз при загрузке имя обрабатывается за доли секунды. На скорость открытия страницы сильнее влияют размер картинки и кэш, а не латиница в пути.

Можно ли обойтись без плагина?

Теоретически да, через фильтр sanitize_file_name в коде темы, но для новичка риск выше. Плагин из каталога проще обновлять и отключить, если что-то пошло не так.

Чем транслит при загрузке отличается от «переименовать медиа»?

Транслит при upload меняет имя в момент заливки. Плагины переименования меняют уже существующую запись в медиатеке и должны синхронизировать ссылки в контенте. Для потока «30 фото с телефона» нужен первый вариант.

Вопросы по настройке WordPress — через форму на сайте (мессенджер, без обязательного созвона) или в канале t.me/DikiiTelegram.

Нужен сайт или статьи, которые находят поиск и нейросети?

Я делаю сайты на WordPress за 7 рабочих дней и веду публикацию статей с SEO- и GEO-оптимизацией — от 12 статей в месяц за 10 000 ₽ — чтобы вас находили в Яндексе, Google и в ответах Алисы, ChatGPT и Perplexity. Общение письменно, без звонков.

Сайт за 7 дней Статьи для сайта

Или напишите в Telegram: @SmartZayvka_bot

Автор — Андрей Дикий, делаю сайты на WordPress и SEO/GEO-статьи. Подробнее: /o-sebe/

*Instagram,Facebook (принадлежит компании Meta, признанной экстремистской и запрещённой на территории РФ)
Андрей Дикий — сайты и SEO/GEO-статьи
Добавить комментарий

WhatsApp может потребовать VPN

Отвечаю в рабочее время в течение 6 часов. Без обязательных созвонов.