WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru

Вопрос по поводу ЧПУ при создании кастомного типа записей

Здравствуйте. попытался привязать новый тип записей к таксономии 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%
не пойму что я мог сделать не так..

0
Sekir
13 ноября 2019

Нет ответов на этот вопрос.

    На вопросы могут отвечать только зарегистрированные пользователи. Вход . Регистрация