Помните, мы писали о том, как создать произвольный тип записей и как вывести записи произвольного типа на WordPress сайте. Но есть еще один не менее важный момент, который вам понадобится в работе с произвольными типами записей - это настройка ЧПУ или структуры ссылок. Базовые настройки WordPress позволяют настроить ЧПУ только для встроенного типа записей, что сильно ограничивает в разработке сайта. Но решить эту проблему можно несколькими способами.
Рекомендуем прочесть пост о том, как правильно настроить ЧПУ в WordPress.
Плагины для работы с ЧПУ в WordPress
Конечно же, уже написаны специальные плагины для работы с ЧПУ произвольных типов записей:
- Custom Post Type Permalinks
- Permalink Editor
Чтобы установить плагин, смотрите инструкцию по установке WordPress плагинов.
Эти плагины усовершенствуют страницу настроек ЧПУ в WordPress примерно следующим образом 
Использовать плагины для настройки произвольной структуры ссылок в WordPress очень удобно. Но если нужно обойтись без плагинов, то можно сделать то же самое с помощью php кода в файле functions.php.
Настройка произвольной структуры ссылок в WordPress с помощью кода
Чтобы настроить ЧПУ для произвольного типа записей без плагина вам потребуется вставить этот код в файл functions.php и отредактировать. В коде есть комментарии, которыми показаны те участки кода, которые нужно поменять в зависимости от вашего типа записей и таксономии.
global $wp_rewrite;
$stati_structure = '/stati/%category%/%stati%'; // "stati" - это ярлык произвольного типа записей, нужно поменять
$wp_rewrite->add_rewrite_tag("%stati%", '([^/]+)', "stati=");
$wp_rewrite->add_permastruct('stati', $stati_structure, false);
add_filter('post_type_link', 'stati_permalink', 10, 3);
function stati_permalink($permalink, $post_id, $leavename) {
$post = get_post($post_id);
$rewritecode = array( '%category%');
if ( '' != $permalink && !in_array($post->post_status, array('draft', 'pending', 'auto-draft')) ) {
$unixtime = strtotime($post->post_date);
$category = '';
if ( strpos($permalink, '%category%') !== false ) {
$cats = wp_get_object_terms($post->ID, 'rubriki'); // "rubriki" - это зарегистрированная произвольная таксономия, нужно поменять
if ( $cats ) {
usort($cats, '_usort_terms_by_ID'); // order by ID
$category = $cats[0]->slug;
}
}
$rewritereplace = array($category);
$permalink = str_replace($rewritecode, $rewritereplace, $permalink);
}
return $permalink;
}