' . esc_html( $home ) . '
' . $delimiter . '
';
if( is_home() ){
$depth = 2;
echo $before . '
' . esc_html( single_post_title( '', false ) ) .' '. $after;
}elseif( is_category() ){
$depth = 2;
$thisCat = get_category( get_query_var( 'cat' ), false );
if( $show_front === 'page' && $post_page ){ //If static blog post page is set
$p = get_post( $post_page );
echo '
' . esc_html( $p->post_title ) . ' ' . $delimiter . '';
$depth ++;
}
if ( $thisCat->parent != 0 ) {
$parent_categories = get_category_parents( $thisCat->parent, false, ',' );
$parent_categories = explode( ',', $parent_categories );
foreach ( $parent_categories as $parent_term ) {
$parent_obj = get_term_by( 'name', $parent_term, 'category' );
if( is_object( $parent_obj ) ){
$term_url = get_term_link( $parent_obj->term_id );
$term_name = $parent_obj->name;
echo '
' . esc_html( $term_name ) . ' ' . $delimiter . ' ';
$depth ++;
}
}
}
echo $before . '
' . esc_html( single_cat_title( '', false ) ) . ' ' . $after;
}elseif( blossom_spa_is_woocommerce_activated() && ( is_product_category() || is_product_tag() ) ){ //For Woocommerce archive page
$depth = 2;
$current_term = $GLOBALS['wp_query']->get_queried_object();
if ( wc_get_page_id( 'shop' ) ) { //Displaying Shop link in woocommerce archive page
$_name = wc_get_page_id( 'shop' ) ? get_the_title( wc_get_page_id( 'shop' ) ) : '';
$shop_url = wc_get_page_id( 'shop' ) && wc_get_page_id( 'shop' ) > 0 ? get_the_permalink( wc_get_page_id( 'shop' ) ) : home_url( '/shop' );
if ( ! $_name ) {
$product_post_type = get_post_type_object( 'product' );
$_name = $product_post_type->labels->singular_name;
}
echo '
' . esc_html( $_name ) . ' ' . $delimiter . ' ';
$depth++;
}
if( is_product_category() ){
$ancestors = get_ancestors( $current_term->term_id, 'product_cat' );
$ancestors = array_reverse( $ancestors );
foreach ( $ancestors as $ancestor ) {
$ancestor = get_term( $ancestor, 'product_cat' );
if ( ! is_wp_error( $ancestor ) && $ancestor ) {
echo '
' . esc_html( $ancestor->name ) . ' ' . $delimiter . ' ';
$depth++;
}
}
}
echo $before .'
'. esc_html( $current_term->name ) .''. $after;
}elseif( blossom_spa_is_woocommerce_activated() && is_shop() ){ //Shop Archive page
$depth = 2;
if ( get_option( 'page_on_front' ) == wc_get_page_id( 'shop' ) ) {
return;
}
$_name = wc_get_page_id( 'shop' ) ? get_the_title( wc_get_page_id( 'shop' ) ) : '';
$shop_url = wc_get_page_id( 'shop' ) && wc_get_page_id( 'shop' ) > 0 ? get_the_permalink( wc_get_page_id( 'shop' ) ) : home_url( '/shop' );
if ( ! $_name ) {
$product_post_type = get_post_type_object( 'product' );
$_name = $product_post_type->labels->singular_name;
}
echo $before .'
'. esc_html( $_name ) .''. $after;
}elseif( is_tax( 'blossom_portfolio_categories' ) ){
$depth = 2;
$queried_object = get_queried_object();
$taxonomy = 'blossom_portfolio_categories';
$ancestors = get_ancestors( $queried_object->term_id, $taxonomy );
if( !empty( $ancestors ) ){
$termz = get_term( $ancestors[0], $taxonomy );
$ancestors_title = !empty( $termz->name ) ? esc_html( $termz->name ) : '';
echo '
' . $ancestors_title . ' ' . $delimiter . ' ';
$depth++ ;
}
echo $before . '
' . esc_html( $queried_object->name ) .''. $after;
}elseif( is_tag() ){
$queried_object = get_queried_object();
$depth = 2;
echo $before . '
' . esc_html( single_tag_title( '', false ) ) .''. $after;
}elseif( is_author() ){
$depth = 2;
global $author;
$userdata = get_userdata( $author );
echo $before . '
' . esc_html( $userdata->display_name ) .''. $after;
}elseif( is_search() ){
$depth = 2;
$request_uri = $_SERVER['REQUEST_URI'];
echo $before .'
'. esc_html__( 'Search Results for "', 'blossom-spa' ) . esc_html( get_search_query() ) . esc_html__( '"', 'blossom-spa' ) .''. $after;
}elseif( is_day() ){
$depth = 2;
echo '
' . esc_html( get_the_time( __( 'Y', 'blossom-spa' ) ) ) . ' ' . $delimiter . ' ';
$depth ++;
echo '
' . esc_html( get_the_time( __( 'F', 'blossom-spa' ) ) ) . ' ' . $delimiter . ' ';
$depth ++;
echo $before .'
'. esc_html( get_the_time( __( 'd', 'blossom-spa' ) ) ) .''. $after;
}elseif( is_month() ){
$depth = 2;
echo '
' . esc_html( get_the_time( __( 'Y', 'blossom-spa' ) ) ) . ' ' . $delimiter . ' ';
$depth++;
echo $before .'
'. esc_html( get_the_time( __( 'F', 'blossom-spa' ) ) ) .''. $after;
}elseif( is_year() ){
$depth = 2;
echo $before .'
'. esc_html( get_the_time( __( 'Y', 'blossom-spa' ) ) ) .''. $after;
}elseif( is_single() && !is_attachment() ){
if( blossom_spa_is_woocommerce_activated() && 'product' === get_post_type() ){ //For Woocommerce single product
$depth = 2;
if ( wc_get_page_id( 'shop' ) ) { //Displaying Shop link in woocommerce archive page
$_name = wc_get_page_id( 'shop' ) ? get_the_title( wc_get_page_id( 'shop' ) ) : '';
$shop_url = wc_get_page_id( 'shop' ) && wc_get_page_id( 'shop' ) > 0 ? get_the_permalink( wc_get_page_id( 'shop' ) ) : home_url( '/shop' );
if ( ! $_name ) {
$product_post_type = get_post_type_object( 'product' );
$_name = $product_post_type->labels->singular_name;
}
echo '
' . esc_html( $_name ) . ' ' . $delimiter . ' ';
$depth++;
}
if ( $terms = wc_get_product_terms( $post->ID, 'product_cat', array( 'orderby' => 'parent', 'order' => 'DESC' ) ) ) {
$main_term = apply_filters( 'woocommerce_breadcrumb_main_term', $terms[0], $terms );
$ancestors = get_ancestors( $main_term->term_id, 'product_cat' );
$ancestors = array_reverse( $ancestors );
foreach ( $ancestors as $ancestor ) {
$ancestor = get_term( $ancestor, 'product_cat' );
if ( ! is_wp_error( $ancestor ) && $ancestor ) {
echo '
' . esc_html( $ancestor->name ) . '' . $delimiter . '';
$depth++;
}
}
echo '
' . esc_html( $main_term->name ) . ' ' . $delimiter . ' ';
$depth ++;
}
echo $before .'
'. esc_html( get_the_title() ) .''. $after;
}elseif( get_post_type() != 'post' ){
$depth = 2;
$post_type = get_post_type_object( get_post_type() );
if( $post_type->has_archive == true ){// For CPT Archive Link
// Add support for a non-standard label of 'archive_title' (special use case).
$label = !empty( $post_type->labels->archive_title ) ? $post_type->labels->archive_title : $post_type->labels->name;
printf( '
%2$s', esc_url( get_post_type_archive_link( get_post_type() ) ), $label, $depth );
echo '' . $delimiter . '';
$depth ++;
}
if( get_post_type() =='blossom-portfolio' ){
// Add support for a non-standard label of 'archive_title' (special use case).
$label = !empty( $post_type->labels->archive_title ) ? $post_type->labels->archive_title : $post_type->labels->name;
$portfolio_link = blossom_spa_get_page_template_url( 'templates/blossom-portfolio.php' );
echo '
'.esc_html($label).'' . $delimiter . '';
$depth ++;
}
echo $before .'
'. esc_html( get_the_title() ) .''. $after;
}else{ //For Post
$cat_object = get_the_category();
$potential_parent = 0;
$depth = 2;
if( $show_front === 'page' && $post_page ){ //If static blog post page is set
$p = get_post( $post_page );
echo '
' . esc_html( $p->post_title ) . ' ' . $delimiter . ' ';
$depth++;
}
if( is_array( $cat_object ) ){ //Getting category hierarchy if any
//Now try to find the deepest term of those that we know of
$use_term = key( $cat_object );
foreach( $cat_object as $key => $object )
{
//Can't use the next($cat_object) trick since order is unknown
if( $object->parent > 0 && ( $potential_parent === 0 || $object->parent === $potential_parent ) ){
$use_term = $key;
$potential_parent = $object->term_id;
}
}
$cat = $cat_object[$use_term];
$cats = get_category_parents( $cat, false, ',' );
$cats = explode( ',', $cats );
foreach ( $cats as $cat ) {
$cat_obj = get_term_by( 'name', $cat, 'category' );
if( is_object( $cat_obj ) ){
$term_url = get_term_link( $cat_obj->term_id );
$term_name = $cat_obj->name;
echo '
' . esc_html( $term_name ) . ' ' . $delimiter . ' ';
$depth ++;
}
}
}
echo $before .'
'. esc_html( get_the_title() ) .''. $after;
}
}elseif( !is_single() && !is_page() && get_post_type() != 'post' && !is_404() ){
$depth = 2;
$post_type = get_post_type_object(get_post_type());
if( get_query_var('paged') ){
echo '
' . esc_html( $post_type->label ) . '';
echo ' ' . $delimiter . ' ' . $before . sprintf( __('Page %s', 'blossom-spa'), get_query_var('paged') ) . $after;
}elseif( is_archive() ){
echo $before .'
'. esc_html( post_type_archive_title() ) .''. $after;
}else{
echo $before .'
'. esc_html( $post_type->label ) .''. $after;
}
}elseif( is_attachment() ){
$depth = 2;
$parent = get_post( $post->post_parent );
$cat = get_the_category( $parent->ID );
if( $cat ){
$cat = $cat[0];
echo get_category_parents( $cat, TRUE, '
' . $delimiter . ' ');
echo '
' . esc_html( $parent->post_title ) . '' . ' ' . $delimiter . '';
}
echo $before .'
'. esc_html( get_the_title() ) .''. $after;
}elseif( is_page() && !$post->post_parent ){
$depth = 2;
echo $before .'
'. esc_html( get_the_title() ) .''. $after;
}elseif( is_page() && $post->post_parent ){
global $post;
$depth = 2;
$parent_id = $post->post_parent;
$breadcrumbs = array();
while( $parent_id ){
$current_page = get_post( $parent_id );
$breadcrumbs[] = $current_page->ID;
$parent_id = $current_page->post_parent;
}
$breadcrumbs = array_reverse( $breadcrumbs );
for ( $i = 0; $i < count( $breadcrumbs); $i++ ){
echo '
' . esc_html( get_the_title( $breadcrumbs[$i] ) ) . '';
if ( $i != count( $breadcrumbs ) - 1 ) echo '
' . $delimiter . ' ';
$depth++;
}
echo '
' . $delimiter . ' ' . $before .'
'. esc_html( get_the_title() ) .''. $after;
}elseif( is_404() ){
echo $before . esc_html__( '404 Error - Page Not Found', 'blossom-spa' ) . $after;
}
if( get_query_var('paged') ) echo __( ' (Page', 'blossom-spa' ) . ' ' . get_query_var('paged') . __( ')', 'blossom-spa' );
echo '