Типичная проблема после включения CyrtoLat выглядит так: записи уже нормально переводятся в латиницу, а вот рубрики и метки начинают вести себя слишком агрессивно. В результате меняются slug у таксономий, появляются лишние редиректы, а часть старых ссылок в меню, хлебных крошках и фильтрах перестаёт совпадать с текущими URL.
Если задача не в том, чтобы полностью отключить автоподмену, а только убрать её для категорий и меток, это лучше делать точечно. Тогда записи продолжат работать по текущему сценарию, а таксономии останутся под вашим контролем.
Когда это действительно нужно
Чаще всего проблема всплывает на сайтах, где рубрики и метки уже давно участвуют в SEO-структуре. Например, у вас есть русские названия категорий в админке, но в URL вы хотите оставить их как есть, чтобы не плодить новые адреса после импорта или редизайна. Или наоборот: записи должны преобразовываться автоматически, а таксономии нужны только как человекочитаемые разделы без вмешательства плагина.
Ещё один частый сценарий — сайт уже проиндексирован, и смена slug у категорий создаёт цепочки редиректов. Для записей это может быть приемлемо, а для архивов таксономий — нет, потому что они часто используются в навигации, фильтрах и внутренних ссылках из шаблонов темы.
Диагностика: что именно ломается
Перед изменением настроек стоит понять, где именно CyrtoLat вмешивается в структуру. Обычно проверяют три вещи: текущий slug в админке, фактический URL на фронтенде и наличие редиректа со старого адреса на новый. Если категория в админке называется по-русски, а в адресной строке уже латиница, значит автоподмена работает и для таксономий.
Проверьте также, не используются ли эти термины в шаблонах темы. Иногда проблема не в самом slug, а в том, что меню, виджеты и хлебные крошки ссылаются на старый адрес. В таком случае отключение автоподмены для категорий и меток убирает расхождение между тем, что хранится в базе, и тем, что видит пользователь.
- Откройте несколько рубрик и меток в админке и сравните их slug с текущими URL.
- Проверьте, есть ли 301-редирект со старого адреса на новый.
- Посмотрите, не дублируются ли архивы таксономий в sitemap и внутренних ссылках.
- Убедитесь, что записи при этом продолжают обрабатываться как раньше.
Как отключить автоподмену только для категорий и меток
Если в CyrtoLat есть настройка исключения для отдельных типов таксономий, используйте её в первую очередь. Это безопаснее, чем пытаться вручную править slug у каждой рубрики. Смысл простой: плагин продолжает работать для записей, но не трогает category и post_tag.
Если в вашей сборке плагина такой переключатель вынесен в отдельный экран, логика обычно сводится к выбору таксономий, для которых автоподмена не применяется. После сохранения настроек новые и существующие термины должны перестать менять slug автоматически.
Практический вариант через фильтр
Если вы управляете поведением через код темы или мини-плагин, используйте фильтр только если он действительно предусмотрен в CyrtoLat. Ниже пример того, как обычно выглядит точечное исключение таксономий на уровне PHP: сначала проверяется тип объекта, затем для категорий и меток возвращается исходное значение без автоподмены.
<?php
add_filter( 'cyrtolat_should_process_term', function( $should_process, $term ) {
if ( ! $term instanceof WP_Term ) {
return $should_process;
}
if ( in_array( $term->taxonomy, array( 'category', 'post_tag' ), true ) ) {
return false;
}
return $should_process;
}, 10, 2 );Важно: имя фильтра в коде должно совпадать с тем, который реально предоставляет CyrtoLat. Если в документации плагина используется другой хук, подставьте именно его. Смысл примера — показать безопасную логику исключения, а не выдумать API.
Сравнение подходов
| Подход | Когда подходит | Минус |
|---|---|---|
| Настройка в интерфейсе CyrtoLat | Нужно быстро отключить автоподмену для таксономий без кода | Зависит от того, есть ли нужный переключатель в вашей версии |
| Фильтр в мини-плагине | Нужна точная логика для отдельных таксономий | Требует аккуратной проверки после обновлений |
| Ручная правка slug у терминов | Нужно исправить единичные случаи | Не решает проблему системно и легко ломается при массовых изменениях |
Пошаговая проверка после внедрения
После отключения автоподмены для категорий и меток не ограничивайтесь визуальной проверкой в админке. Откройте архивы таксономий в браузере и сравните адреса с теми, что были до изменения. Если slug остался прежним, а страница открывается без редиректа, значит сценарий работает.
Дальше проверьте внутренние ссылки: меню, блоки с рубриками, хлебные крошки, связанные записи. На сайтах с кэшем полезно очистить не только плагин кэша, но и серверный кэш, если он есть. Иначе можно увидеть старую версию URL и сделать неверный вывод, что настройка не сработала.
<?php
// Быстрая проверка в шаблоне или временном mu-plugin.
$term = get_term_by( 'slug', 'novosti', 'category' );
if ( $term ) {
echo esc_html( $term->slug );
echo '<br>';
echo esc_url( get_term_link( $term ) );
}Если get_term_link() возвращает ожидаемый адрес без лишнего преобразования, а архив открывается напрямую, значит автоподмена для этой таксономии больше не вмешивается.
Частые ошибки и как их исправить
Отключили не ту таксономию
Иногда исключают только category, а метки продолжают менять slug. Визуально это выглядит как частично рабочая настройка: рубрики на месте, а теги внезапно начинают редиректить. Проверяйте обе таксономии отдельно.
Старые редиректы остались в кэше
После изменения настроек браузер может показывать старый маршрут из-за кэша, а сервер — старый ответ из-за правил редиректа. Сначала очищайте кэш, потом тестируйте в приватном окне и только после этого делайте выводы.
Внутренние ссылки уже сохранены с новым slug
Если раньше автоподмена уже успела изменить адреса, отключение функции не вернёт старые ссылки автоматически. Придётся отдельно проверить меню, блоки и SEO-поля, где могли сохраниться новые URL.
Путают slug термина и название
Отключение автоподмены влияет на адрес, а не на отображаемое имя рубрики или метки. Если в шаблоне виден латинский slug вместо русского названия, проблема может быть не в CyrtoLat, а в теме или кастомном выводе.
Что учесть по безопасности и производительности
Если вы вносите исключения через код, лучше оформить их как мини-плагин или mu-plugin, а не держать в functions.php темы. Так настройка не потеряется при смене темы и проще переживёт обновления. Для сайтов с большим числом таксономий это ещё и удобнее для отладки.
Не стоит одновременно держать несколько механизмов, которые меняют slug: CyrtoLat, ручные редиректы, SEO-плагин и кастомные правила в .htaccess. Чем больше слоёв, тем выше шанс получить цепочку редиректов или дубли архивов. Если у вас уже есть Clearfy Pro, его имеет смысл использовать для общей чистки дублей и технической оптимизации, но не как замену точечной логике CyrtoLat.
Если задача сводится к одному-двум разделам, лучше исключить только нужные таксономии и не расширять правило на весь сайт. Это снижает риск случайно сломать структуру URL там, где автоподмена действительно полезна.
Короткий чек-лист перед публикацией изменений
- Проверены категории и метки отдельно.
- Отключение затронуло только нужные таксономии.
- Старые редиректы очищены из кэша.
- Архивы открываются без цепочек 301.
- Внутренние ссылки в меню и блоках не уехали на старые адреса.
- Записи по-прежнему обрабатываются CyrtoLat как раньше.
Если после этого URL таксономий ведут себя предсказуемо, а записи продолжают переводиться в латиницу без ручной правки, значит настройка сделана правильно и не затронула лишние участки сайта.