Примеры переезда со старой версии Kama Breadcrumbs 3
Kama Breadcrumbs- Заметки по Микроразметке
- Примеры переезда со старой версии Kama Breadcrumbs 3
- Удаляем дублированные строки в каждой следующей части крошек
- Поддержка плагина qtranslate-xt
- Установка через composer
При установке новой версии скорее всего ничего менять не придется. Этот пример показывает когда изменялся шаблон вывода...
Пример 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().