Описание
Converts Cyrillic characters in post, page, and term slugs to Latin characters. Useful for creating human-readable URLs.
Особенности
- The only plugin with a fully editable transliteration table. Allows adding/removing and editing pairs like ‘Я’ => ‘Ya’, or even ‘Пиво’ => ‘Beer’
- Converts any number of existing post, page, and term slugs in background processes
- Сохраняет целостность постоянных ссылок уже существующих записей и страниц
- Выполняет транслитерацию названий файлов из вложений
- Плагин поддерживает русские, белорусские, украинские, болгарские, македонские, сербские, греческие, армянские, грузинские, казахские, ивритские и китайские символы.
- Имеет много преимуществ перед аналогичными плагинами
- Официально совместим с WPML
Основано на оригинальном плагине Rus-To-Lat от Антона Скоробогатова.
Спонсируется проектом Blackfire.
Поддержка плагина
Скриншоты
Установка
- Загрузите папку
cyr2latв директорию/wp-content/plugins/ - Активируйте плагин на странице «Плагины» в панели управления WordPress.
Часто задаваемые вопросы
-
Как назначить свои правила для замены?
-
Добавьте этот код к файлу
functions.phpвашей темы:/** * Modify conversion table. * * @param array $table Conversion table. * * @return array */ function my_ctl_table( $table ) { $table['Ъ'] = 'U'; $table['ъ'] = 'u'; return $table; } add_filter( 'ctl_table', 'my_ctl_table' ); -
Как я могу переопределить нестандартную локаль?
-
Например, если ваша нестандартная локаль uk_UA, вы можете переопределить её в
ukдобавлением следующего кода вfunction.phpвашей темы:/** * Use non-standard locale. * * @param string $locale Current locale. * * @return string */ function my_ctl_locale( $locale ) { if ( 'uk_UA' === $locale ) { return 'uk'; } return $locale; } add_filter( 'ctl_locale', 'my_ctl_locale' ); -
Как я могу определить собственную транслитерацию заголовков?
-
Добавьте примерно такой код в
functions.phpвашей темы./** * Filter title before sanitizing. * * @param string|false $result Sanitized title. * @param string $title Title. * * @return string|false */ function my_ctl_pre_sanitize_title( $result, $title ) { if ( 'пиво' === $title ) { return 'beer'; } return $result; } add_filter( 'ctl_pre_sanitize_title', 10, 2 ); -
Как вы могу определить собственную транслитерацию имён файлов?
-
Добавьте примерно такой код в
functions.phpвашей темы./** * Filter filename before sanitizing. * * @param string|false $result Sanitized filename. * @param string $filename Title. * * @return string|false */ function my_ctl_pre_sanitize_filename( $result, $filename ) { if ( 'пиво' === $filename ) { return 'beer'; } return $result; } add_filter( 'ctl_pre_sanitize_filename', 10, 2 ); -
Как я могу разрешить плагину работать на фронтенде?
-
Добавьте следующий код в основной файл вашего плагина (или mu-плагина). Этот код не будет работать, если добавить его в файл functions.php темы.
/** * Filter status allowed Cyr To Lat plugin to work. * * @param bool $allowed * * @return bool */ function my_ctl_allow( bool $allowed ): bool { $uri = isset( $_SERVER['REQUEST_URI'] ) ? sanitize_url( wp_unslash( $_SERVER['REQUEST_URI'] ) ) : ''; if ( 0 === strpos( $uri, '/divi-comments' ) ) { return true; } return $allowed; } add_filter( 'ctl_allow', 'my_ctl_allow' ); -
Как я могу ограничить типы постов для фоновой конвертации?
-
Добавьте примерно такой код в
functions.phpвашей темы./** * Filter post types allowed for background conversion. * * @param array $post_types Allowed post types. * * @return array */ function my_ctl_post_types( $post_types ) { return [ 'post' => 'post', 'page' => 'page', 'attachment' => 'attachment', 'product' => 'product', 'nav_menu_item' => 'nav_menu_item', ]; } add_filter( 'ctl_post_types', 'my_ctl_post_types' ); -
Как я могу сконвертировать много постов/терминов, используя wp-cli?
-
Используйте следующую команду в консоли:
wp cyr2lat regenerate [--post_type=<post_type>] [--post_status=<post_status>]Где
-post_type список типов постов,
-post_status список статусов постов. -
Как я могу безопасно регенерировать миниатюры?
-
Регенерация миниатюр командой
wp media regenerateможет сломать ссылки в старых постах, потому что имена файлов транлитерируются.Во избежание этого, отключите плагин cyr2lat во время регенерации:
wp media regenerate --skip-plugins=cyr2lat -
Могу ли я внести свой вклад?
-
Да, вы можете!
- Присоединяйтесь к нашему репозиторию GitHub
- Присоединяйтесь к нашей группе в Телеграм
-
Куда мне сообщить об ошибках безопасности, обнаруженных в этом плагине?
-
Please report security vulnerabilities by email to:
security@kagg.eu
When reporting a vulnerability, please include as much information as possible to help us reproduce and investigate the issue, such as:
- A clear description of the vulnerability
- Steps to reproduce
- Proof-of-concept or exploit code (if available)
- Affected versions
We will review your report and respond as quickly as possible.
Отзывы
Участники и разработчики
«Cyr-To-Lat» — проект с открытым исходным кодом. В развитие плагина внесли свой вклад следующие участники:
Участники«Cyr-To-Lat» переведён на 10 языков. Благодарим переводчиков за их работу.
Перевести «Cyr-To-Lat» на ваш язык.
Заинтересованы в разработке?
Посмотрите код, проверьте SVN репозиторий, или подпишитесь на журнал разработки по RSS.
Журнал изменений
6.7.0 (01.04.2026)
- The minimum required PHP version is now 7.4.
- The minimum required WordPress version is now 6.0.
- Fixed a fatal error occurred with WP-CLI in a rare case.
- Fixed transliteration of WC local attributes.
- Tested with WordPress 7.0.
6.6.0 (30.11.2025)
- Исправлено сообщение об устаревшей функции в main.php в WordPress 6.9.
- Протестировано с PHP 8.4.
- Протестировано на WordPress 6.9.
- Протестировано с WooCommerce 10.3.
6.5.0 (24.10.2025)
- Исправлена транслитерация меток при редактировании.
6.4.1 (03.05.2025)
- Исправлено расположение сообщений на странице таблиц.
- Протестировано на WordPress 6.8.
- Протестировано с WooCommerce 9.8.
6.3.0 (22.12.2024)
- Добавлено предупреждающее сообщение на странице таблиц, когда активная таблица не соответствует языковому стандарту сайта.
- Удалено исправление для перевода после WordPress 6.5+ из-за проблем с производительностью.
6.2.3 (24.11.2024)
- Исправлена ошибка устаревания в PHP 8.4.
- Протестировано с PHP 8.4.
6.2.2 (15.11.2024)
- Исправлено уведомление _load_textdomain_just_in_time в WordPress 6.7.
- Некоторые переводы были пустыми в WordPress 6.5+.
6.2.1 (13.11.2024)
- Исправлен макет страницы конвертера.
- Исправлены проблемы, о которых сообщил плагин Plugin Check.
6.2.0 (13.11.2024)
- Прекращена поддержка PHP 7.0 и 7.1. Минимальная требуемая версия PHP теперь 7.2.
- Минимальная требуемая версия WordPress теперь — 5.3.
- Исправлено уведомление о неправильном вызове функции _load_textdomain_just_in_time.
- Протестировано на WordPress 6.7.
- Протестировано с WooCommerce 9.4.
6.1.0 (09.03.2024)
- Протестировано на WordPress 6.5.
- Протестировано с WooCommerce 8.6.
- Исправлена ошибка на вкладке информации о системе, когда типы записей или статусы записей не были заданы.
6.0.8 (14.02.2024)
- Улучшено обнаружение редактора Gutenberg.
- Исправлена обработка атрибутов товара.
6.0.7 (11.02.2024)
- Протестировано с WooCommerce 8.5.
- Добавлено перенаправление с кириллического заголовка записи при создании новой записи.
- Добавлено описание типов записей и статусов записей на странице Конвертера.
- Исправлено отображение всех описаний файлов в редакторе темы в текущей локали.
- Исправлено предупреждение PHP в разделе настроек.
- Исправлен вывод атрибутов вариативного товара.
6.0.6 (14.01.2024)
- Протестировано с WordPress 6.4.
- Протестировано с WooCommerce 8.4.
- Протестировано с использованием PHP 8.3.
- Исправлена документация по фильтру ctl_allow.
- Исправлено неправильное отображение сообщения об оценке плагина в options.php.
6.0.5 (09.10.2023)
- Исправлено отображение описания в Редакторе Темы; сейчас в текущей локали.
6.0.4 (23.09.2023)
- Исправлено исчезновение описания на странице Редактора Темы.
6.0.3 (29.07.2023)
- Исправлена фатальная ошибка при синхронизации с Jetpack.
6.0.2 (26.07.2023)
- Исправлена фатальная ошибка с admin_footer_text().
6.0.1 (26.07.2023)
- Исправлена фатальная ошибка на странице системной информации с пустыми параметрами.
6.0.0 (26.07.2023)
- Прекращена поддержка PHP 5.6. Минимально требуемая версия PHP теперь 7.0.
- Протестировано с WordPress 6.3.
- Протестировано с WooCommerce 7.9.
- Добавлена вкладка Системная Информация.
- Добавлен фильтр ‘ctl_allow’
- Исправлена консольная ошибка при сохранении табличных данных.
- Исправлена текущая настройка таблицы на странице таблиц с помощью WPML.




