189 lines
6.5 KiB
PHP
189 lines
6.5 KiB
PHP
<?php
|
|
/**
|
|
* Shop Breadcrumb
|
|
*/
|
|
|
|
global $post, $wp_query;
|
|
|
|
if( !$home ) $home = _x('Home', 'breadcrumb', 'woocommerce');
|
|
|
|
$home_link = home_url();
|
|
|
|
$prepend = '';
|
|
|
|
if ( get_option('woocommerce_prepend_shop_page_to_urls')=="yes" && woocommerce_get_page_id('shop') && get_option('page_on_front') !== woocommerce_get_page_id('shop') )
|
|
$prepend = $before . '<a href="' . get_permalink( woocommerce_get_page_id('shop') ) . '">' . get_the_title( woocommerce_get_page_id('shop') ) . '</a> ' . $after . $delimiter;
|
|
|
|
if ( (!is_home() && !is_front_page() && !(is_post_type_archive() && get_option('page_on_front')==woocommerce_get_page_id('shop'))) || is_paged() ) :
|
|
|
|
echo $wrap_before;
|
|
|
|
echo $before . '<a class="home" href="' . $home_link . '">' . $home . '</a> ' . $after . $delimiter ;
|
|
|
|
if ( is_category() ) :
|
|
|
|
$cat_obj = $wp_query->get_queried_object();
|
|
$this_category = $cat_obj->term_id;
|
|
$this_category = get_category( $this_category );
|
|
if ($this_category->parent != 0) :
|
|
$parent_category = get_category( $this_category->parent );
|
|
echo get_category_parents($parent_category, TRUE, $delimiter );
|
|
endif;
|
|
echo $before . single_cat_title('', false) . $after;
|
|
|
|
elseif ( is_tax('product_cat') ) :
|
|
|
|
echo $prepend;
|
|
$term = get_term_by( 'slug', get_query_var( 'term' ), get_query_var( 'taxonomy' ) );
|
|
|
|
$parents = array();
|
|
$parent = $term->parent;
|
|
while ($parent):
|
|
$parents[] = $parent;
|
|
$new_parent = get_term_by( 'id', $parent, get_query_var( 'taxonomy' ));
|
|
$parent = $new_parent->parent;
|
|
endwhile;
|
|
|
|
if(!empty($parents)):
|
|
$parents = array_reverse($parents);
|
|
foreach ($parents as $parent):
|
|
$item = get_term_by( 'id', $parent, get_query_var( 'taxonomy' ));
|
|
echo $before . '<a href="' . get_term_link( $item->slug, 'product_cat' ) . '">' . $item->name . '</a>' . $after . $delimiter;
|
|
endforeach;
|
|
endif;
|
|
|
|
$queried_object = $wp_query->get_queried_object();
|
|
echo $before . $queried_object->name . $after;
|
|
|
|
elseif ( is_tax('product_tag') ) :
|
|
|
|
$queried_object = $wp_query->get_queried_object();
|
|
echo $prepend . $before . __('Products tagged “', 'woocommerce') . $queried_object->name . '”' . $after;
|
|
|
|
elseif ( is_day() ) :
|
|
|
|
echo $before . '<a href="' . get_year_link(get_the_time('Y')) . '">' . get_the_time('Y') . '</a>' . $after . $delimiter;
|
|
echo $before . '<a href="' . get_month_link(get_the_time('Y'),get_the_time('m')) . '">' . get_the_time('F') . '</a>' . $after . $delimiter;
|
|
echo $before . get_the_time('d') . $after;
|
|
|
|
elseif ( is_month() ) :
|
|
|
|
echo $before . '<a href="' . get_year_link(get_the_time('Y')) . '">' . get_the_time('Y') . '</a>' . $after . $delimiter;
|
|
echo $before . get_the_time('F') . $after;
|
|
|
|
elseif ( is_year() ) :
|
|
|
|
echo $before . get_the_time('Y') . $after;
|
|
|
|
elseif ( is_post_type_archive('product') && get_option('page_on_front') !== woocommerce_get_page_id('shop') ) :
|
|
|
|
$_name = woocommerce_get_page_id('shop') ? get_the_title( woocommerce_get_page_id('shop') ) : ucwords(get_option('woocommerce_shop_slug'));
|
|
|
|
if (is_search()) :
|
|
|
|
echo $before . '<a href="' . get_post_type_archive_link('product') . '">' . $_name . '</a>' . $delimiter . __('Search results for “', 'woocommerce') . get_search_query() . '”' . $after;
|
|
|
|
else :
|
|
|
|
echo $before . '<a href="' . get_post_type_archive_link('product') . '">' . $_name . '</a>' . $after;
|
|
|
|
endif;
|
|
|
|
elseif ( is_single() && !is_attachment() ) :
|
|
|
|
if ( get_post_type() == 'product' ) :
|
|
|
|
echo $prepend;
|
|
|
|
if ($terms = wp_get_object_terms( $post->ID, 'product_cat' )) :
|
|
$term = current($terms);
|
|
$parents = array();
|
|
$parent = $term->parent;
|
|
while ($parent):
|
|
$parents[] = $parent;
|
|
$new_parent = get_term_by( 'id', $parent, 'product_cat');
|
|
$parent = $new_parent->parent;
|
|
endwhile;
|
|
if(!empty($parents)):
|
|
$parents = array_reverse($parents);
|
|
foreach ($parents as $parent):
|
|
$item = get_term_by( 'id', $parent, 'product_cat');
|
|
echo $before . '<a href="' . get_term_link( $item->slug, 'product_cat' ) . '">' . $item->name . '</a>' . $after . $delimiter;
|
|
endforeach;
|
|
endif;
|
|
echo $before . '<a href="' . get_term_link( $term->slug, 'product_cat' ) . '">' . $term->name . '</a>' . $after . $delimiter;
|
|
endif;
|
|
|
|
echo $before . get_the_title() . $after;
|
|
|
|
elseif ( get_post_type() != 'post' ) :
|
|
$post_type = get_post_type_object(get_post_type());
|
|
$slug = $post_type->rewrite;
|
|
echo $before . '<a href="' . get_post_type_archive_link(get_post_type()) . '">' . $post_type->labels->singular_name . '</a>' . $after . $delimiter;
|
|
echo $before . get_the_title() . $after;
|
|
else :
|
|
$cat = current(get_the_category());
|
|
echo get_category_parents($cat, TRUE, $delimiter);
|
|
echo $before . get_the_title() . $after;
|
|
endif;
|
|
|
|
elseif ( is_404() ) :
|
|
|
|
echo $before . __('Error 404', 'woocommerce') . $after;
|
|
|
|
elseif ( !is_single() && !is_page() && get_post_type() != 'post' ) :
|
|
|
|
$post_type = get_post_type_object(get_post_type());
|
|
if ($post_type) : echo $before . $post_type->labels->singular_name . $after; endif;
|
|
|
|
elseif ( is_attachment() ) :
|
|
|
|
$parent = get_post($post->post_parent);
|
|
$cat = get_the_category($parent->ID); $cat = $cat[0];
|
|
echo get_category_parents($cat, TRUE, '' . $delimiter);
|
|
echo $before . '<a href="' . get_permalink($parent) . '">' . $parent->post_title . '</a>' . $after . $delimiter;
|
|
echo $before . get_the_title() . $after;
|
|
|
|
elseif ( is_page() && !$post->post_parent ) :
|
|
|
|
echo $before . get_the_title() . $after;
|
|
|
|
elseif ( is_page() && $post->post_parent ) :
|
|
|
|
$parent_id = $post->post_parent;
|
|
$breadcrumbs = array();
|
|
while ($parent_id) {
|
|
$page = get_page($parent_id);
|
|
$breadcrumbs[] = '<a href="' . get_permalink($page->ID) . '">' . get_the_title($page->ID) . '</a>';
|
|
$parent_id = $page->post_parent;
|
|
}
|
|
$breadcrumbs = array_reverse($breadcrumbs);
|
|
foreach ($breadcrumbs as $crumb) :
|
|
echo $crumb . '' . $delimiter;
|
|
endforeach;
|
|
echo $before . get_the_title() . $after;
|
|
|
|
elseif ( is_search() ) :
|
|
|
|
echo $before . __('Search results for “', 'woocommerce') . get_search_query() . '”' . $after;
|
|
|
|
elseif ( is_tag() ) :
|
|
|
|
echo $before . __('Posts tagged “', 'woocommerce') . single_tag_title('', false) . '”' . $after;
|
|
|
|
elseif ( is_author() ) :
|
|
|
|
$userdata = get_userdata($author);
|
|
echo $before . __('Author:', 'woocommerce') . ' ' . $userdata->display_name . $after;
|
|
|
|
endif;
|
|
|
|
if ( get_query_var('paged') ) :
|
|
|
|
echo ' (' . __('Page', 'woocommerce') . ' ' . get_query_var('paged') .')';
|
|
|
|
endif;
|
|
|
|
echo $wrap_after;
|
|
|
|
endif; |