add_filter('post_type_link', 'katalog_permalink', 10, 2);
function katalog_permalink( $permalink, $post ){
// выходим если это не наш тип записи
if( strpos($permalink, '%katalogcat%') === false )
return $permalink;
// Получаем элементы таксы
$terms = get_the_terms($post, 'katalogcat');
// если есть элемент заменим холдер
if( ! is_wp_error($terms) && !empty($terms) ) {
$term_id = $terms[0]->term_id;
$term_slug = get_term_parents_list( $term_id, 'katalogcat', array(
'separator' => '/',
'format' => 'slug',
'link' => false,
'inclusive' => true,
) );
$term_slug = substr($term_slug, 0, -1);
}
// элемента нет, а должен быть...
else
$term_slug = 'no-category';
return str_replace('%katalogcat%', $term_slug, $permalink );
}