Опис
Претвара ћириличне знакове у кратким именима чланака, страница и појмова у латиничне знакове. Корисно за прављење URL-ова читљивих људима.
Могућности
- Једини додатак са потпуно уредивом табелом пресловљавања. Омогућава додавање/уклањање и уређивање парова као што су ‘Я’ => ‘Ya’, или чак ‘Пиво’ => ‘Beer’
- Претвара кратка имена чланака, страница, произвољних врста чланака и појмова кроз изричите путање чувања у Вордпресу и REST/Гутенберг
- Претвара било који број постојећих кратких имена чланака, страница и појмова у позадинским процесима или помоћу WP-CLI
- Чува целовитост постојећих сталних веза чланака и страница
- Пресловљава називе датотека прилога
- Подржава токове кратких имена WooCommerce производа, таксономија производа, глобалних атрибута, локалних атрибута, варијација и корпе у јавном делу, без аутоматског преноса постојећих атрибута
- Додатак подржава руска, белоруска, украјинска, бугарска, македонска, српска, грчка, јерменска, грузијска, казашка, хебрејска и кинеска слова
- Има много предности у односу на сличне додатке
- Званично усаглашен са WPML-ом
Засновано на изворном додатку Rus-To-Lat аутора Anton Skorobogatov.
Спонзор: Blackfire.
Подршка за додатак
Снимци екрана




Постављање
- Отпремите фасциклу
cyr2latу фасциклу/wp-content/plugins/. - Укључите додатак преко изборника „Додаци“ у Вордпресу.
Напомене о надоградњи за 7.0
Издање 7.0 је издање усмерено на архитектуру. Задржава постојећу табелу пресловљавања, филтере локалитета, алатке за претварање чланака и појмова и WP-CLI наредбу стабилним, уз премештање обраде кратких имена у изричите услуге.
Постојећи чланци, странице, појмови, називи датотека и подаци WooCommerce производа не преписују се разорно током надоградње додатка. Користите страницу Претварач или wp cyr2lat regenerate када намерно желите поново да направите постојећа кратка имена чланака и појмова.
WooCommerce атрибути направљени пре 7.0 не преносе се аутоматски. Постојеће глобалне таксономије pa_* и постојеће кључеве локалних атрибута или атрибута варијација треба засебно прегледати; сваки будући пренос мора користити посебан ток рада са претходним пробним покретањем.
Cyr-To-Lat 7.0.1 одржава старе локалне WooCommerce атрибуте варијација, укључујући варијације Any, усклађеним између обрасца производа, захтева за додавање у корпу и сесије корпе.
ЧПП
-
Како могу да дефинишем сопствене замене?
-
Додајте овај кôд у датотеку
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 ); -
Како могу да управљам старим мостом sanitize_title?
-
Издање 7.0 користи изричите руковаоце кратким именима за чланке, појмове, WooCommerce атрибуте и друге познате путање чувања. Стари мост
sanitize_titleостаје као резервно решење ради усаглашености за широке позиве на које се старије интеграције можда још ослањају.Широко резервно понашање можете искључити овим кодом:
add_filter( 'ctl_enable_legacy_sanitize_title_bridge', '__return_false' );Филтер прима тренутну подразумевану вредност,
$title,$raw_titleи$context. Изричито познати контексти, као што је обрада чувања у Вордпресу, и даље користе посебне путање кратких имена из 7.0.За отклањање грешака непознатих позива моста, дефинишите
CYR_TO_LAT_DEBUG_LEGACY_SANITIZE_TITLE_BRIDGEкаоtrue. Овај дијагностички дневник је подразумевано искључен и не укључује се помоћуWP_DEBUG. -
Како могу да дефинишем сопствено пресловљавање назива датотека?
-
Додајте сличан кôд у датотеку
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 списак стања чланака. -
Које понашање WooCommerce атрибута је подржано у 7.0?
-
Cyr-To-Lat 7.0 изричито обрађује нова и ажурирана кратка имена WooCommerce производа, кратка имена категорија и ознака производа, кратка имена глобалних атрибута, кратка имена појмова глобалних атрибута, кључеве локалних атрибута производа, кључеве атрибута варијација, захтеве за додавање у корпу у јавном делу, учитавање сесије корпе, чување преко REST/API-ја и токове чувања у администрацији.
Постојећи WooCommerce атрибути се не преносе аутоматски при надоградњи додатка. То значи да постојеће глобалне таксономије
pa_*, кључеви локалних атрибута производа и кључеви атрибута варијација задржавају своје тренутне сачуване вредности док их намерно не промените. Будућа алатка за пренос требало би да буде засебна и да прво нуди пробно покретање, како би власници продавница могли да сагледају утицај пре било каквог преписивања. -
Како могу безбедно поново да направим сличице?
-
Поновно прављење сличица наредбом
wp media regenerateможе покварити везе у старим чланцима јер се називи датотека пресловљавају.Да бисте то избегли, искључите додатак cyr2lat током поновног прављења:
wp media regenerate --skip-plugins=cyr2lat -
Могу ли да допринесем?
-
Да, можете!
- Придружите се нашој GitHub ризници
- Придружите се нашој Telegram групи
-
Где да пријавим безбедносне грешке пронађене у овом додатку?
-
Безбедносне рањивости пријавите е-поштом на:
security@kagg.eu
Приликом пријаве рањивости наведите што више информација како бисте нам помогли да поновимо и истражимо проблем, на пример:
- Јасан опис рањивости
- Кораци за понављање
- Доказ концепта или кôд за искоришћавање (ако је доступан)
- Погођена издања
Прегледаћемо вашу пријаву и одговорити што је пре могуће.
Рецензије
Сарадници и градитељи
„Cyr-To-Lat“ је софтвер отвореног кода. Следећи људи су допринели овом додатку.
Сарадници„Cyr-To-Lat“ је преведен на 13 језика. Хвала преводиоцима на њиховим доприносима.
Преведите „Cyr-To-Lat“ на свој језик.
Заинтересовани сте за развој?
Прегледајте кôд, погледајте SVN складиште или се претплатите на дневник развоја преко RSS-а.
Дневник измена
7.1.0 (8. август 2026.)
- Ојачано пресловљавање назива датотека и подешавања за вишесајтно окружење.
- Ојачана провера исправности података у администрацији.
- Исправљено прављење кратких имена за нове нацрте које прави Yoast Duplicate Post када је умножавање изворног кратког имена искључено.
- Спречена фатална грешка када WooCommerce покрене куку за читање производа без објекта производа.
7.0.2 (24. мај 2026.)
- Исправљени стари локални WooCommerce атрибути варијација са интерпункцијом у називима атрибута након надоградње са издања старијих од 7.0.
7.0.1 (20. мај 2026.)
- Дијагностика старог моста sanitize_title промењена тако да користи посебну константу CYR_TO_LAT_DEBUG_LEGACY_SANITIZE_TITLE_BRIDGE уместо WP_DEBUG.
- Исправљени стари локални WooCommerce атрибути варијација, укључујући варијације
Any, након надоградње са издања старијих од 7.0. - Исправљена двострука кратка имена WooCommerce производа када се постојећи производ ажурира са празним кратким именом.
7.0.0 (18. мај 2026.)
- Обрада кратких имена преуређена у изричите услуге за чланке, појмове, називе датотека, WooCommerce атрибуте, атрибуте варијација, позадинско претварање и WP-CLI путање.
- Побољшана покривеност Гутенберга кроз обраду кратких имена преко REST-а/позадинског дела.
- Побољшана подршка за WooCommerce за токове чувања производа, таксономија, глобалних атрибута, локалних атрибута, варијација, корпе у јавном делу, REST/API-ја и администрације.
- Додат филтер за усаглашеност
ctl_enable_legacy_sanitize_title_bridgeза широко старо понашањеsanitize_title. - Документовано је да се постојећи WooCommerce атрибути не преносе аутоматски у 7.0; будући рад на преносу мора бити засебан ток рада са претходним пробним покретањем.
- Документована стратегија тестирања са приоритетом на позадинском делу, без обавезних зависности Codeception или Playwright за објављивање.
