Примеры переезда со старой версии Kama Breadcrumbs 3

Kama Breadcrumbs

При установке новой версии скорее всего ничего менять не придется. Этот пример показывает когда изменялся шаблон вывода...

Пример 1

Был код для версии 3:

// старые коды для крошек версии 3 ----------------------------------- 
add_filter( 'kama_breadcrumbs_default_args ', function($args){
	$args['linkpatt'] = '<li><a href="%s">%s</a></li>';
	$args['title_patt'] = '<li class="active">%s</li>';
	$args['sep_after'] = '';
	$args['sep'] = '';
	return $args;
} );

Для версии 4 код нужно переделать так:

// меняем аргументы крошек
add_filter( 'kama_breadcrumbs_args', function($args){

	$args['markup'] = array(
		//'wrappatt'  => '<div class="kama_breadcrumbs">%s</div>',
		'linkpatt'  => '<li><a href="%s">%s</a></li>',
		'titlepatt' => '<li class="active">%s</li>',
		//'seppatt'   => '<span class="kb_sep">%s</span>',
	);

	$args['sep'] = '';

	return $args;
} );

Что изменилось:

  • теперь разметка лежит в элементе массива 'markup'.
  • Изменился элемент title_patt на titlepatt.
  • Теперь не обязательно указывать все элементы разметки...

Пример 2

Был код для версии 3:

add_action( 'kama_breadcrumbs_home_after', 'my_breadcrumbs_home_after', 10, 4);
function my_breadcrumbs_home_after( $false, $linkpatt, $sep, $ptype ){
	// если мы в рубрике с ID 5 или в дочерней рубрике,
	// то дополним начало крошек ссылкой на страницу с ID 7
	$qo = get_queried_object();

	// if( is_category() && ( $qo->term_id == 5 || $qo->parent == 5 ) ){
	if( is_page( array( 563, 564, 565, 566, 567, 568 ) ) ){
		$page = get_post( 562 ); // Услуги
		return sprintf( $linkpatt, get_permalink($page), $page->post_title ) . $sep;
	}
	elseif ( is_page( array( 579, 582, 584 ) ) ){
		$page = get_post( 524 ); // Наша специализация
		return sprintf( $linkpatt, get_permalink($page), $page->post_title ) . $sep;
	}
	elseif ( is_page( array( 1040, 1046, 1047, 1058, 1060, 1062 ) ) ){
		$page = get_post( 523 ); // О компании
		return sprintf( $linkpatt, get_permalink($page), $page->post_title ) . $sep;
	}
	elseif ( is_page( array( 1088 ) ) ){
		$page = get_post( 574 ); // Клиентам
		return sprintf( $linkpatt, get_permalink($page), $page->post_title ) . $sep;
	}
	return $false;
}

Для версии 4 код нужно переделать так:

// добавить свои ссылки в крошки - добавим рубрику tplcat если фукнция из этой рубрики.
add_filter( 'kama_breadcrumbs_filter_elements', 'my_breadcrumbs_home_after', 10, 3 );
function my_breadcrumbs_home_after( $elms, $class, $ptype ){
	// print_r( $elms ); // дебаг - смотрим какие элементы есть в массиве и добавляем куда и что нужно нам

	// если мы в рубрике с ID 5 или в дочерней рубрике,
	// то дополним начало крошек ссылкой на страницу с ID 7
	$qo = get_queried_object();

	// if( is_category() && ( $qo->term_id == 5 || $qo->parent == 5 ) ){
	if( is_page( array( 563, 564, 565, 566, 567, 568 ) ) ){
		$page_id = 562; // Услуги
	}
	elseif ( is_page( array( 579, 582, 584 ) ) ){
		$page_id = 524; // Наша специализация
	}
	elseif ( is_page( array( 1040, 1046, 1047, 1058, 1060, 1062 ) ) ){
		$page_id = 523; // О компании
	}
	elseif ( is_page( array( 1088 ) ) ){
		$page_id = 574; // Клиентам
	}

	// если есть что добавить - добавляем
	if( isset($page_id) ){
		$page = get_post( $page_id );
		$elms['home_after'][] = $class->makelink( get_permalink($page), $page->post_title );
	}

	return $elms;
}

Что изменилось:

  • изменился фильтр. Теперь все элементы крошек можно менять через единый фильтр 'kama_breadcrumbs_filter_elements'.
  • ссылка добавляется в массив
  • ссылка создается с помощью метода makelink().