Breadcrumb not showing custom category post type

I’m still not one hundred percent sure where and what needs to be displayed.

If you need to show the current single post’s category, you’ll need to use get_the_category in stead of the_category as the_category needs to be called inside the loop. You can use get_the_category as follow (Remember to use the global $post to retrieve the post ID)

<?php
global $post;
$categories = get_the_category($post->ID);
var_dump($categories);
?>

If you need to get the category name on a category page, you can use get_query_var('cat') to retrieve info about the current category page.

Here is an example of the breadcrumbs that I use on my site.

if ( ! function_exists( 'pietergoosen_breadcrumbs' ) ) :

    function pietergoosen_breadcrumbs() {
          /* === OPTIONS === */
        $text['home']     = _x( 'Home', 'Home', 'pietergoosen' ); // text for the 'Home' link
     $text['category'] = __( 'Archive by Category "%s"', 'pietergoosen' );  // text for a category page
     $text['search']   = __( 'Search Results for "%s" Query', 'pietergoosen' ); // text for a search results page
     $text['tag']      = __( 'Posts Tagged "%s"', 'pietergoosen' );  // text for a tag page
     $text['author']   = __( 'Posts Posted by %s', 'pietergoosen' ); // text for an author page
     $text['404']      = __( 'Error 404', 'pietergoosen' );  // text for the 404 page

     $show_current   = 1; // 1 - show current post/page/category title in breadcrumbs, 0 - don't show
     $show_on_home   = 0; // 1 - show breadcrumbs on the homepage, 0 - don't show
     $show_home_link = 1; // 1 - show the 'Home' link, 0 - don't show
     $show_title     = 1; // 1 - show the title for the links, 0 - don't show
     $delimiter=" &raquo; "; // delimiter between crumbs
     $before="<span class="current">"; // tag before the current crumb
     $after="</span>"; // tag after the current crumb
     /* === END OF OPTIONS === */

     global $post;
        $here_text    = __('You are currently here! &nbsp;&raquo;&nbsp;', 'pietergoosen');
     $home_link    = home_url("https://wordpress.stackexchange.com/");
     $link_before="<span typeof="v:Breadcrumb">";
     $link_after="</span>";
     $link_attr=" rel="v:url" property="v:title"";
     $link         = $link_before . '<a' . $link_attr . ' href="https://wordpress.stackexchange.com/questions/159519/%1$s">%2$s</a>' . $link_after;
        if (isset($post)){
            $parent_id    = $parent_id_2  = $post->post_parent;
        }
     $frontpage_id = get_option('page_on_front');

     if (is_home() || is_front_page()) {

            if ($show_on_home == 1) echo '<div class="breadcrumb"><a href="' . $home_link . '">' . $text['home'] . '</a></div>';

        } else {

         echo '<div class="breadcrumb">';
         if ($show_home_link == 1) {
             echo  $here_text . '<a href="' . $home_link . '" rel="v:url" property="v:title">' . $text['home'] . '</a>';
             if ($frontpage_id == 0 || $parent_id != $frontpage_id) echo $delimiter;
         }

         if ( is_category() ) {
             $this_cat = get_category(get_query_var('cat'), false);
             if ($this_cat->parent != 0) {
                 $cats = get_category_parents($this_cat->parent, TRUE, $delimiter);
                 if ($show_current == 0) $cats = preg_replace("#^(.+)$delimiter$#", "$1", $cats);
                 $cats = str_replace('<a', $link_before . '<a' . $link_attr, $cats);
                 $cats = str_replace('</a>', '</a>' . $link_after, $cats);
                 if ($show_title == 0) $cats = preg_replace('/ title="(.*?)"https://wordpress.stackexchange.com/", '', $cats);
                 echo $cats;
             }
                if ($show_current == 1) echo $before . sprintf($text['category'], single_cat_title('', false)) . $after;

          } elseif ( is_search() ) {
              echo $before . sprintf($text['search'], get_search_query()) . $after;

          } elseif ( is_day() ) {
             echo sprintf($link, get_year_link(get_the_time('Y')), get_the_time('Y')) . $delimiter;
             echo sprintf($link, get_month_link(get_the_time('Y'),get_the_time('m')), get_the_time('F')) . $delimiter;
             echo $before . get_the_time('d') . $after;

         } elseif ( is_month() ) {
             echo sprintf($link, get_year_link(get_the_time('Y')), get_the_time('Y')) . $delimiter;
             echo $before . get_the_time('F') . $after;

          } elseif ( is_year() ) {
              echo $before . get_the_time('Y') . $after;

          } elseif ( is_single() && !is_attachment() ) {
                if ( get_post_type() != 'post' ) {
                    $post_type = get_post_type_object(get_post_type());
                    $slug = $post_type->rewrite;
                    printf($link, $home_link . "https://wordpress.stackexchange.com/" . $slug['slug'] . "https://wordpress.stackexchange.com/", $post_type->labels->singular_name);
                    if ($show_current == 1) echo $delimiter . $before . get_the_title() . $after;
                } else {
                    $cat = get_the_category(); $cat = $cat[0];
                    $cats = get_category_parents($cat, TRUE, $delimiter);
                    if ($show_current == 0) $cats = preg_replace("#^(.+)$delimiter$#", "$1", $cats);
                    $cats = str_replace('<a', $link_before . '<a' . $link_attr, $cats);
                    $cats = str_replace('</a>', '</a>' . $link_after, $cats);
                    if ($show_title == 0) $cats = preg_replace('/ title="(.*?)"https://wordpress.stackexchange.com/", '', $cats);
                    echo $cats;
                    if ($show_current == 1) echo $before . get_the_title() . $after;
                }

         } elseif ( !is_single() && !is_page() && get_post_type() != 'post' && !is_404() ) {
             $post_type = get_post_type_object(get_post_type());
             echo $before . $post_type->labels->singular_name . $after;

         } elseif ( is_attachment() ) {
               $parent = get_post($parent_id);
                $cat = get_the_category($parent->ID); $cat = $cat[0];
                $cats = get_category_parents($cat, TRUE, $delimiter);
                $cats = str_replace('<a', $link_before . '<a' . $link_attr, $cats);
                $cats = str_replace('</a>', '</a>' . $link_after, $cats);
                if ($show_title == 0) $cats = preg_replace('/ title="(.*?)"https://wordpress.stackexchange.com/", '', $cats);
                echo $cats;
              printf($link, get_permalink($parent), $parent->post_title);
              if ($show_current == 1) echo $delimiter . $before . get_the_title() . $after;

            } elseif ( is_page() && !$parent_id ) {
                if ($show_current == 1) echo $before . get_the_title() . $after;

            } elseif ( is_page() && $parent_id ) {
                if ($parent_id != $frontpage_id) {
                    $breadcrumbs = array();
                    while ($parent_id) {
                        $page = get_page($parent_id);
                        if ($parent_id != $frontpage_id) {
                            $breadcrumbs[] = sprintf($link, get_permalink($page->ID), get_the_title($page->ID));
                        }
                        $parent_id = $page->post_parent;
                    }
                   $breadcrumbs = array_reverse($breadcrumbs);
                   for ($i = 0; $i < count($breadcrumbs); $i++) {
                       echo $breadcrumbs[$i];
                       if ($i != count($breadcrumbs)-1) echo $delimiter;
                   }
              }
             if ($show_current == 1) {
                 if ($show_home_link == 1 || ($parent_id_2 != 0 && $parent_id_2 != $frontpage_id)) echo $delimiter;
                 echo $before . get_the_title() . $after;
             }

          } elseif ( is_tag() ) {
             echo $before . sprintf($text['tag'], single_tag_title('', false)) . $after;

          } elseif ( is_author() ) {
               global $author;
               $userdata = get_userdata($author);
              echo $before . sprintf($text['author'], $userdata->display_name) . $after;

           } elseif ( is_404() ) {
               echo $before . $text['404'] . $after;
           }

          if ( get_query_var('paged') ) {
              if ( is_category() || is_day() || is_month() || is_year() || is_search() || is_tag() || is_author() ) echo ' (';
             echo __('&nbsp;&raquo;&nbsp; Page', 'pietergoosen') . ' ' . get_query_var('paged');
             if ( is_category() || is_day() || is_month() || is_year() || is_search() || is_tag() || is_author() ) echo ')';
         }

           echo '</div><!-- .breadcrumbs -->';

        }
    }

endif; 

NOTE: I’ve copied this function from somewhere a year or two ago without adding author credit (bad me), so I can’t remember who the original author was. If you, the author, see this post, please reply so that I can add full credit to you)