Вопрос по поводу ЧПУ при создании кастомного типа записей
Здравствуйте. попытался привязать новый тип записей к таксономии category (по сути что бы разграничить вывод кастомных полей для постов из разных категорий)
Проблема возникает с чпу.
мне нужно в итоге получить ссылку вида сайт/категория/название поста
"из коробки" вылетает ссылка вида сайт/кастомный тип поста/название поста
почитав документацию, в параметр rewrite записал следующее:
'rewrite'=> array( 'slug'=>'%category%', 'with_front' => false )
Что бы вместо %category% выводилась моя категория применил фильтр:
add_filter('post_type_link', 'teacher_fix', 1, 2);
function teacher_fix( $permalink, $post ){
// выходим если это не наш тип записи: без холдера %products%
if( strpos($permalink, '%category%') === false )
return $permalink;
// Получаем элементы таксы
$terms = get_the_terms($post, 'category');
// если есть элемент заменим холдер
if( ! is_wp_error($terms) && !empty($terms) && is_object($terms[0]) ) {
//$term_slug = array_pop($terms)->slug;
//$term_slug = $terms[0]->slug;
$term_slug = get_term_parents_list( $terms[0]->term_id, 'category', array(
'separator' => '/',
'format' => 'slug',
'link' => false,
'inclusive' => true,
) );
$term_slug = trim($term_slug, '/');
}
// элемента нет, а должен быть...
else
$term_slug = 'no-categories';
return str_replace('%category%', $term_slug, $permalink );
}
оно то работает, но сломались хлебные крошки. они получаются вида: сайт/%category%
не пойму что я мог сделать не так..