Navigation
This is archived content. Visit our new forum.

Tagged: 

  • Author
    Posts
  • #1344508
    alanjonesonline
    Participant

    Hi there,

    I went through the forum, found this code (see below) and have added it to the theme functions.php. I works a treat for displaying the breadcrumbs correctly given my main navigation is mostly links to blog categories.

    When I click on a Child Category (in the ‘Collections’ menu) it doesn’t display: Home > Parent Category > Child Category > Post Title. Rather it only displays: Home > Child Category. Yet when I click into the post, it then displays: Home > Parent Category > Child Category > Post Title.

    My question is: When I click on a child category from the drop down menu, it possible for the breadcrumbs to display: Home > Parent Category > Child Category?

    Have a look and you’ll see.

    http://www.alanjonesonline.com

    Cheers,
    Alan

    // Breadcrumbs Display Category Name
    // =============================================================================

    function get_breadcrumb_category( $cat ) {
    $post = get_post( $post->ID );
    $post_type = $post->post_type;
    $taxonomy = $cat;

    $f_categories = wp_get_post_terms( $post->ID, $taxonomy );
    $f_category = $f_categories[0];

    if ( $f_category->parent != 0 ) {
    $f_category_id = $f_category->parent;
    $parent_array = get_term_by(‘id’, $f_category_id, $taxonomy, ‘ARRAY_A’);
    $f_category_name = $parent_array[“name”];
    $term_link = get_term_link( $f_category_id, $taxonomy );
    } else {
    $f_category_id = $f_category->term_id;
    $f_category_name = $f_category->name;
    $term_link = get_term_link( $f_category_id, $taxonomy );
    }

    if ( $f_categories && ! is_wp_error($f_categories) ) {
    return ‘‘ . $f_category_name . ‘‘;
    } else {
    return ”;
    }
    }

    function x_breadcrumbs() {

    if ( x_get_option( ‘x_breadcrumb_display’, ‘1’ ) ) {

    GLOBAL $post;

    $is_ltr = ! is_rtl();
    $stack = x_get_stack();
    $delimiter = x_get_breadcrumb_delimiter();
    $home_text = x_get_breadcrumb_home_text();
    $home_link = home_url();
    $current_before = x_get_breadcrumb_current_before();
    $current_after = x_get_breadcrumb_current_after();
    $page_title = get_the_title();
    $blog_title = get_the_title( get_option( ‘page_for_posts’, true ) );
    $post_parent = $post->post_parent;

    if ( X_WOOCOMMERCE_IS_ACTIVE ) {
    $shop_url = x_get_shop_link();
    $shop_title = x_get_option( ‘x_’ . $stack . ‘_shop_title’, __( ‘The Shop’, ‘__x__’ ) );
    $shop_link = ‘‘ . $shop_title . ‘‘;
    }

    echo ‘<div class=”x-breadcrumbs”>‘ . $home_text . ‘‘ . $delimiter;

    if ( is_home() ) {

    echo $current_before . $blog_title . $current_after;

    } elseif ( is_category() ) {

    $the_cat = get_category( get_query_var( ‘cat’ ), false );
    if ( $the_cat->parent != 0 ) echo ‘‘.get_the_title(102) .’‘;
    echo $current_before . single_cat_title( ”, false ) . $current_after;

    } elseif ( x_is_product_category() ) {

    if ( $is_ltr ) {
    echo $shop_link . $delimiter . $current_before . single_cat_title( ”, false ) . $current_after;
    } else {
    echo $current_before . single_cat_title( ”, false ) . $current_after . $delimiter . $shop_link;
    }

    } elseif ( x_is_product_tag() ) {

    if ( $is_ltr ) {
    echo $shop_link . $delimiter . $current_before . single_tag_title( ”, false ) . $current_after;
    } else {
    echo $current_before . single_tag_title( ”, false ) . $current_after . $delimiter . $shop_link;
    }

    } elseif ( is_search() ) {

    echo $current_before . __( ‘Search Results for ‘, ‘__x__’ ) . ‘”‘ . get_search_query() . ‘”‘ . $current_after;

    } elseif ( is_singular( ‘post’ ) ) {

    if ( get_option( ‘page_for_posts’ ) == is_front_page() ) {
    echo $current_before . $page_title . $current_after;
    } else {
    if ( $is_ltr ) {

    $f_category = get_the_category();

    if ( $f_category[0]->category_parent != 0 ) {
    $f_category_id = $f_category[0]->parent;
    $f_category_name = get_cat_name( $f_category_id );

    $f_subcategory_id = $f_category[0]->cat_ID;
    $f_subcategory_name = get_cat_name( $f_subcategory_id );

    echo ‘‘ . $f_category_name . ‘‘ . $delimiter
    .’‘ . $f_subcategory_name . ‘‘ . $delimiter . $current_before . $page_title . $current_after;
    } else {
    $f_category_id = $f_category[0]->term_id;
    $f_category_name = $f_category[0]->name;
    echo ‘‘ . $f_category_name . ‘‘ . $delimiter . $current_before . $page_title . $current_after;
    }

    } else {
    echo $current_before . $page_title . $current_after . $delimiter . ‘‘ . $blog_title . ‘‘;
    }
    }

    } elseif ( x_is_portfolio() ) {

    echo $current_before . get_the_title() . $current_after;

    } elseif ( x_is_portfolio_item() ) {

    $link = x_get_parent_portfolio_link();
    $title = x_get_parent_portfolio_title();

    if ( $v = get_breadcrumb_category(‘portfolio-category’) ) {
    $portfolio_category = $delimiter . $v;
    } else {
    $portfolio_category = ”;
    }

    if ( $is_ltr ) {
    echo ‘‘ . $title . ‘‘ . $portfolio_category . $delimiter . $current_before . $page_title . $current_after;
    } else {
    echo $current_before . $page_title . $current_after . $portfolio_category . $delimiter . ‘‘ . $title . ‘‘;
    }

    } elseif ( x_is_product() ) {

    if ( $v = get_breadcrumb_category(‘product_cat’) ) {
    $product_category = $delimiter . $v;
    } else {
    $product_category = ”;
    }

    if ( $is_ltr ) {
    echo $shop_link . $product_category . $delimiter . $current_before . $page_title . $current_after;
    } else {
    echo $current_before . $page_title . $current_after . $product_category . $delimiter . $shop_link;
    }

    } elseif ( x_is_buddypress() ) {

    if ( bp_is_group() ) {
    echo ‘‘ . x_get_option( ‘x_buddypress_groups_title’, __( ‘Groups’, ‘__x__’ ) ) . ‘‘ . $delimiter . $current_before . x_buddypress_get_the_title() . $current_after;
    } elseif ( bp_is_user() ) {
    echo ‘‘ . x_get_option( ‘x_buddypress_members_title’, __( ‘Members’, ‘__x__’ ) ) . ‘‘ . $delimiter . $current_before . x_buddypress_get_the_title() . $current_after;
    } else {
    echo $current_before . x_buddypress_get_the_title() . $current_after;
    }

    } elseif ( x_is_bbpress() ) {

    //remove_filter( ‘bbp_no_breadcrumb’, ‘__return_true’ );

    if ( bbp_is_forum_archive() ) {
    echo $current_before . bbp_get_forum_archive_title() . $current_after;
    } else {
    echo bbp_get_breadcrumb();
    }

    //add_filter( ‘bbp_no_breadcrumb’, ‘__return_true’ );

    } elseif ( is_page() && ! $post_parent ) {

    echo $current_before . $page_title . $current_after;

    } elseif ( is_page() && $post_parent ) {

    $parent_id = $post_parent;
    $breadcrumbs = array();

    if ( is_rtl() ) {
    echo $current_before . $page_title . $current_after . $delimiter;
    }

    while ( $parent_id ) {
    $page = get_page( $parent_id );
    $breadcrumbs[] = ‘ID ) . ‘”>’ . get_the_title( $page->ID ) . ‘‘;
    $parent_id = $page->post_parent;
    }

    if ( $is_ltr ) {
    $breadcrumbs = array_reverse( $breadcrumbs );
    }

    for ( $i = 0; $i < count( $breadcrumbs ); $i++ ) {
    echo $breadcrumbs[$i];
    if ( $i != count( $breadcrumbs ) -1 ) echo $delimiter;
    }

    if ( $is_ltr ) {
    echo $delimiter . $current_before . $page_title . $current_after;
    }

    } elseif ( is_tag() ) {

    echo $current_before . single_tag_title( ”, false ) . $current_after;

    } elseif ( is_author() ) {

    GLOBAL $author;
    $userdata = get_userdata( $author );
    echo $current_before . __( ‘Posts by ‘, ‘__x__’ ) . ‘”‘ . $userdata->display_name . $current_after . ‘”‘;

    } elseif ( is_404() ) {

    echo $current_before . __( ‘404 (Page Not Found)’, ‘__x__’ ) . $current_after;

    } elseif ( is_archive() ) {

    if ( x_is_shop() ) {
    echo $current_before . $shop_title . $current_after;
    } else {
    echo $current_before . __( ‘Archives ‘, ‘__x__’ ) . $current_after;
    }

    }

    echo ‘</div>’;

    }

    }
    // =============================================================================

    #1344864
    Lely
    Moderator

    Hello Alan,

    It is possible but required a more advance customization that is beyond the scope of our support. For detailed explanation, please check this thread:https://community.theme.co/forums/topic/full-path-breadcrumbs/#post-399081
    Thank you for understanding.

    #1345386
    alanjonesonline
    Participant

    Hi Lely,

    No worries. Fair enough. Thanks for your reply.

    Alan

    #1345431
    Nico
    Moderator

    Thank you so much for understanding.

    Feel free to ask us again.

    Thanks.

  • <script> jQuery(function($){ $("#no-reply-1344508 .bbp-template-notice, .bbp-no-topic .bbp-template-notice").removeClass('bbp-template-notice'); }); </script>