Navigation
This is archived content. Visit our new forum.
  • Author
    Posts
  • #694198
    Thai
    Moderator

    Thank you for your feedback, @ezeey.

    #705158
    Gabriel
    Participant

    Same here!

    #705314
    Rue Nel
    Moderator

    Noted.
    Thanks for the feedback.

    #763550
    Peter M
    Participant

    How 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.

    #764037
    Lely
    Moderator
    #764136
    Peter M
    Participant

    That link is broken. Looked at some other threads by searching “breadcrumbs not showing categories”, but no solution for me.

    #764359
    Christopher
    Moderator

    Hi 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.

    #764836
    Peter M
    Participant

    Ok, 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

    #765000
    Christopher
    Moderator

    Hi 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.

    #771051
    Peter M
    Participant

    Beautiful – worked like a charm!!

    Thanks so much, you guys rock.

    – Peter.

    #771612
    Christopher
    Moderator

    You’re most welcome.

    #998005
    janih
    Participant

    Hi,

    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?

    #998300
    Jade
    Moderator

    Hi there,

    Kindly try to install the child theme and place the code in the functions.php file.

    Let us know how it goes.

    #999820
    janih
    Participant
    This reply has been marked as private.
    #1000383
    Rad
    Moderator

    Hi 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!

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