-
AuthorPosts
-
December 6, 2015 at 7:08 am #694198December 13, 2015 at 3:50 pm #705158
Same here!
December 13, 2015 at 6:59 pm #705314Noted.
Thanks for the feedback.January 25, 2016 at 1:27 pm #763550How do I set the breadcrumbs to show the category?
Right now while on a product page, I only show the shop prior to the product, and I want to have the category appear between shop and product.
Thanks.
January 25, 2016 at 7:14 pm #764037Hello Peter,
Please try this:https://theme.co/x/member/forums/topic/breadcrumb-not-showing-categories-on-post-page-but-in-post-category/#post-202441
Hope this helps.
January 25, 2016 at 8:43 pm #764136That link is broken. Looked at some other threads by searching “breadcrumbs not showing categories”, but no solution for me.
January 26, 2016 at 12:15 am #764359Hi there,
Sorry about that.
I put the code here. Please add following code in child theme’s functions.phph file :
// 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 '<a href="' . $term_link . '">' . $f_category_name . '</a>'; } 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 = '<a href="'. $shop_url .'">' . $shop_title . '</a>'; } echo '<div class="x-breadcrumbs"><a href="' . $home_link . '">' . $home_text . '</a>' . $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 '<a href="'.get_permalink(102).'">'.get_the_title(102) .'</a>'; 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]->parent != 0 ) { $f_category_id = $f_category[0]->parent; $f_category_name = get_cat_name( $f_category_id ); } else { $f_category_id = $f_category[0]->term_id; $f_category_name = $f_category[0]->name; } echo '<a href="' . get_category_link( $f_category_id ) . '">' . $f_category_name . '</a>' . $delimiter . $current_before . $page_title . $current_after; } else { echo $current_before . $page_title . $current_after . $delimiter . '<a href="' . get_permalink( get_option( 'page_for_posts' ) ) . '">' . $blog_title . '</a>'; } } } 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 '<a href="' . $link . '">' . $title . '</a>' . $portfolio_category . $delimiter . $current_before . $page_title . $current_after; } else { echo $current_before . $page_title . $current_after . $portfolio_category . $delimiter . '<a href="' . $link . '">' . $title . '</a>'; } } 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 '<a href="' . bp_get_groups_directory_permalink() . '">' . x_get_option( 'x_buddypress_groups_title', __( 'Groups', '__x__' ) ) . '</a>' . $delimiter . $current_before . x_buddypress_get_the_title() . $current_after; } elseif ( bp_is_user() ) { echo '<a href="' . bp_get_members_directory_permalink() . '">' . x_get_option( 'x_buddypress_members_title', __( 'Members', '__x__' ) ) . '</a>' . $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[] = '<a href="' . get_permalink( $page->ID ) . '">' . get_the_title( $page->ID ) . '</a>'; $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>'; } }
Hope it helps.
January 26, 2016 at 7:12 am #764836Ok, thanks.
I’m not using a child theme, though, and that kind of altering of php means I probably should.
I’ve also held off updating Cornerstone because of all the problems I’ve read about. Do you recommend installing the child theme first, then updating the plugin, or does it matter?
Thanks
January 26, 2016 at 8:59 am #765000Hi there,
It really doesn’t matter which one is done sooner.
Because this requires a template change, I’d advise that you setup a child theme. This allows you to make code changes that won’t be overwritten when an X update is released. After your child theme is setup, please review how we recommend making template changes in Customization Best Practices.Thanks.
January 29, 2016 at 1:14 pm #771051Beautiful – worked like a charm!!
Thanks so much, you guys rock.
– Peter.
January 30, 2016 at 12:25 am #771612You’re most welcome.
May 18, 2016 at 2:56 pm #998005Hi,
I pasted the above code to my site specific plugin which is basically functions.php file. When I tried to activate the plugin I got an error: Fatal error: Cannot redeclare x_breadcrumbs()
What could be wrong?
May 18, 2016 at 6:24 pm #998300Hi there,
Kindly try to install the child theme and place the code in the functions.php file.
Let us know how it goes.
May 19, 2016 at 12:18 pm #999820This reply has been marked as private.May 19, 2016 at 5:54 pm #1000383Hi there,
The code is for the product category, this link https://www.valokuvio.net/blogi/tama-on-vain-testi/ is a blog post. And should be done through child theme, but you don’t have active child theme.
I also checked the code and confirmed working on my end.
Thanks!
-
AuthorPosts