by Sergey Biryukov
4.7 (98 reviews)
Cyr-To-Lat
Convert Non-Latin characters in post, page and term slugs to Latin characters.
Compatible with WP 7.0.1
v7.0.2
Current Version v7.0.2
Updated 1 month ago
Last Update on 24 May, 2026
Refreshed 10 hours ago
Last Refreshed on
Rank
#205
—
No change
Active Installs
300K+
-0.7%
KW Avg Position
4.8
—
No change
Downloads
3.4M
+529 today
Support Resolved
88%
—
No change
Rating
94%
Review 4.7 out of 5
4.7
(98 reviews)
Next Milestone 400K
300K+
400K+
47
Ranks to Climb
-
Growth Needed
8,000,000
Active Installs
Pro
Unlock Exact Install Count
See the precise estimated active installs for this plugin, calculated from real-time ranking data.
- Exact install estimates within tiers
- Track install growth over time
- Milestone progress predictions
Need 97,917 more installs to reach 400K+
Rank Changes
Current
#205
Change
Best
#
Downloads Growth
Downloads
Growth
Peak
Upgrade to Pro
Unlock 30-day, 90-day, and yearly download history charts with a Pro subscription.
Upgrade NowReviews & Ratings
4.7
98 reviews
Overall
94%
5
85
(87%)
4
4
(4%)
3
3
(3%)
2
1
(1%)
1
5
(5%)
Tracked Keywords
Showing 5 of 5| Keyword | Position | Change | Type | Updated |
|---|---|---|---|---|
| cyrillic | 1 | — | Tag | 10 hours ago |
| transliteration | 1 | — | Tag | 10 hours ago |
| slugs | 2 | — | Tag | 10 hours ago |
| translation | 9 | — | Tag | 10 hours ago |
| multilingual | 11 | — | Tag | 10 hours ago |
Unlock Keyword Analytics
Track keyword rankings, search positions, and discover new ranking opportunities with a Pro subscription.
- Full keyword position tracking
- Historical ranking data
- Competitor keyword analysis
Support Threads Overview
Resolved
Unresolved
8
Total Threads
7
Resolved
1
Unresolved
88%
Resolution Rate
Track This Plugin
Get detailed analytics, keyword tracking, and position alerts delivered to your inbox.
Start Tracking FreePlugin Details
- Version
- 7.0.2
- Last Updated
- May 24, 2026
- Requires WP
- 6.0+
- Tested Up To
- 7.0.1
- PHP Version
- 7.4 or higher
- Author
- Sergey Biryukov
Support & Rating
- Rating
- ★ ★ ★ ★ ★ 4.7
- Reviews
- 98
- Support Threads
- 8
- Resolved
- 88%
Keywords
Upgrade to Pro
Unlock keyword rankings, search positions, and detailed analytics with a Pro subscription.
Upgrade NowSimilar Plugins
Adminify – White Label, Admin Menu Editor, Login Customizer
7K+ installs
#2,739
Master Addons For Elementor – Widgets, Extensions, Theme Builder, Popup Builder & Template Kits
30K+ installs
#989
Loco Translate
1M+ installs
#35
WM
WP Multibyte Patch
1M+ installs
#66
Translate WordPress with GTranslate
900K+ installs
#72
Frequently Asked Questions
Common questions about Cyr-To-Lat
Add this code to your theme's functions.php file: /** * 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' );
For instance, if your non-standard locale is uk_UA, you can redefine it to uk by adding the following code to your theme's function.php file: /** * 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' );
Add similar code to your theme's functions.php file: /** * 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 );
Version 7.0 uses explicit slug handlers for posts, terms, WooCommerce attributes, and other known save paths. A legacy sanitize_title bridge remains as a compatibility fallback for broad calls that older integrations may still rely on. You can disable the broad fallback with this code: add_filter( 'ctl_enable_legacy_sanitize_title_bridge', '__return_false' ); The filter receives the current default value, $title, $raw_title, and $context. Explicit known contexts, such as WordPress save handling, continue to use the dedicated 7.0 slug paths. For debugging unknown bridge calls, define CYR_TO_LAT_DEBUG_LEGACY_SANITIZE_TITLE_BRIDGE as true. This diagnostic log is disabled by default and is not enabled by WP_DEBUG.
Add similar code to your theme's functions.php file: /** * 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 );
Add the following code to your plugin's (or mu-plugin's) main file. This code won't work being added to a theme's functions.php file. /** * Filter status allowed Cyr To Lat plugin to work. * * @param bool $allowed * * @return bool */ function my_ctl_allow( bool $allowed ): bool {
sanitize_url( wp_unslash( $_SERVER['REQUEST_URI'] ) ) : ''; if ( 0 === strpos( $uri, '/divi-comments' ) ) { return true; } return $allowed; } add_filter( 'ctl_allow', 'my_ctl_allow' );
Add similar code to your theme's functions.php file: /** * 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' );
Use the following command in the console: wp cyr2lat regenerate [--post_type=<post_type>] [--post_status=<post_status>]
-post_type is a list of post types, -post_status is a list of post statuses.