Custom post type, как задать url на русском?
Всем драсте.
Создал custom post type - doctors , slug - врачи. Все корректно работает, в адресной строке выдает врачи, архивная страница site.ru/врачи работает.
Проблема: установил yoats и с помощью его вывожу хлебные крошки и у меня выводится ( главная doctors Петров ) , а мне надо ( главная врачи Петров ) , как это можно поправить ? Пробовал в настройках самого yoats не нахожу, менял по разному не работает.
Дополнительно:
Ответы:
Скорее всего yoast тянет "doctors" из аргумента labels функции register_post_type.
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Для custom post type можно задать русский slug в параметре
rewrite. WordPress технически поддерживает кириллицу в URL, а браузер будет показывать её красиво, хотя внутри она кодируется percent-encoding. Главное — регистрировать CPT наinitи после изменения slug пересохранить постоянные ссылки.add_action('init', function () { register_post_type('service', [ 'labels' => [ 'name' => 'Услуги', 'singular_name' => 'Услуга', ], 'public' => true, 'has_archive' => 'услуги', 'rewrite' => [ 'slug' => 'услуги', 'with_front' => false, ], 'show_in_rest' => true, 'supports' => ['title', 'editor', 'thumbnail'], ]); });
После этого откройте «Настройки → Постоянные ссылки» и нажмите «Сохранить». Это обновит rewrite rules. Делать
flush_rewrite_rules()на каждом запросе нельзя: это лишняя нагрузка.Минусы кириллических URL: при копировании в некоторые системы ссылка может превращаться в длинную строку с
%D1%83..., бывают проблемы со старыми интеграциями и логами. Для SEO кириллица допустима, но на практике часто выбирают латиницу:/uslugi/,/portfolio/,/stati/.Если сайт уже индексируется со старым slug, смена URL требует 301-редиректов со старых адресов на новые. Иначе можно потерять трафик и получить 404.
Перед внедрением на рабочем сайте проверьте решение на копии или хотя бы сделайте резервную копию изменяемого файла. После правки включите отображение ошибок, откройте проблемную страницу в обычном и приватном окне, проверьте консоль браузера и логи PHP. Если задача связана с WordPress, WooCommerce или ACF, дополнительно проверьте поведение после очистки кэша и после выхода из админки: часть ошибок видна только для незалогиненного пользователя.
Если код работает только в одном шаблоне, лучше не оставлять его разрозненно в нескольких файлах. Вынесите повторяемую логику в функцию, небольшой плагин или template part, а в шаблоне оставьте только вызов. Так проще поддерживать решение после обновления темы, плагинов и PHP.