| 1 |
<?php |
| 2 |
if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly |
| 3 |
|
| 4 |
function mbt_breadcrumbs_init() { |
| 5 |
add_action('mbt_before_single_book', 'mbt_do_page_breadcrumbs', 20); |
| 6 |
add_action('mbt_before_book_archive', 'mbt_do_page_breadcrumbs', 20); |
| 7 |
add_filter('woo_breadcrumbs_trail', 'mbt_integrate_woo_breadcrumbs'); |
| 8 |
add_filter('genesis_page_crumb', 'mbt_integrate_genesis_breadcrumb_archive', 20, 2); |
| 9 |
} |
| 10 |
add_action('mbt_init', 'mbt_breadcrumbs_init'); |
| 11 |
|
| 12 |
function mbt_integrate_woo_breadcrumbs($trail) { |
| 13 |
global $mbt_archive_query; |
| 14 |
if(is_tax('mbt_author') or is_tax('mbt_genre') or is_tax('mbt_series') or is_tax('mbt_tag') || (mbt_is_archive_query() && ($mbt_archive_query->is_tax('mbt_author') or $mbt_archive_query->is_tax('mbt_genre') or $mbt_archive_query->is_tax('mbt_series') or $mbt_archive_query->is_tax('mbt_tag')))) { |
| 15 |
$page_link = '<a href="'.mbt_get_booktable_url().'">'.mbt_get_product_name().'</a>'; |
| 16 |
array_splice($trail, 1, count($trail) - 1, array($page_link, $trail['trail_end'])); |
| 17 |
} |
| 18 |
return $trail; |
| 19 |
} |
| 20 |
|
| 21 |
function mbt_integrate_genesis_breadcrumb_archive($crumb, $args) { |
| 22 |
global $mbt_archive_query; |
| 23 |
if(is_tax('mbt_author') or is_tax('mbt_genre') or is_tax('mbt_series') or is_tax('mbt_tag') || (mbt_is_archive_query() && ($mbt_archive_query->is_tax('mbt_author') or $mbt_archive_query->is_tax('mbt_genre') or $mbt_archive_query->is_tax('mbt_series') or $mbt_archive_query->is_tax('mbt_tag')))) { |
| 24 |
$crumb = '<a href="'.mbt_get_booktable_url().'">'.mbt_get_product_name().'</a>'.$args['sep'].$crumb; |
| 25 |
} |
| 26 |
return $crumb; |
| 27 |
} |
| 28 |
|
| 29 |
function mbt_do_page_breadcrumbs() { |
| 30 |
$show_breadcrumbs = apply_filters('mbt_show_page_breadcrumbs', mbt_get_setting('enable_breadcrumbs') and !mbt_has_template_context('shortcode')); |
| 31 |
if($show_breadcrumbs) { mbt_the_breadcrumbs(); } |
| 32 |
} |
| 33 |
|
| 34 |
function mbt_get_breadcrumbs($delimiter = '') { |
| 35 |
$delimiter = empty($delimiter) ? ' > ' : $delimiter; |
| 36 |
$delimiter = '<span class="mbt-breadcrumbs-delimiter">'.$delimiter.'</span>'; |
| 37 |
$output = '<a href="'.get_site_url().'">'.__('Home', 'mybooktable').'</a>'; |
| 38 |
|
| 39 |
if(is_singular('mbt_book')) { |
| 40 |
global $post; |
| 41 |
$output .= $delimiter.'<a href="'.mbt_get_booktable_url().'">'.mbt_get_product_name().'</a>'.$delimiter.'<a href="'.get_permalink().'">'.$post->post_title.'</a>'; |
| 42 |
} else if(is_tax('mbt_author') or is_tax('mbt_series') or is_tax('mbt_genre') or is_tax('mbt_tag')) { |
| 43 |
$output .= $delimiter.'<a href="'.mbt_get_booktable_url().'">'.mbt_get_product_name().'</a>'.$delimiter.'<a href="'.get_term_link(get_queried_object()).'">'.get_queried_object()->name.'</a>'; |
| 44 |
} else if(is_post_type_archive('mbt_book') or mbt_is_booktable_page()) { |
| 45 |
$output .= $delimiter.'<a href="'.mbt_get_booktable_url().'">'.mbt_get_product_name().'</a>'; |
| 46 |
} |
| 47 |
|
| 48 |
return apply_filters('mbt_get_breadcrumbs', empty($output) ? '' : '<div class="mbt-breadcrumbs">'.$output.'</div>'); |
| 49 |
} |
| 50 |
function mbt_the_breadcrumbs($delimiter = '') { |
| 51 |
echo(wp_kses_post(mbt_get_breadcrumbs($delimiter))); |
| 52 |
} |