Unable to fix bread crumb structure in wordpress to display “blog”

Solution:

According to the way the breadcrumb code is set up, you will need to run a check to see if you are currently on a blog page, and if you are, add the text in between the last breadcrumb item & the home one.

This can be done by utilising the global wp_query, in combination with the function is_simple(). This has now been tested and seems to work.

function breadcrumbs($id = null) {

    $blogTitle = get_the_title( get_option('page_for_posts', true) );
    global $wp_query; ?>

    <div id="breadcrumbs">

        <span><a href="<?php bloginfo('url'); ?>">Home</a></span>

        <?php if ( isset( $wp_query ) && (bool) $wp_query->is_posts_page ) { ?>
            > <?php echo $blogTitle; ?></span>
        <?php } ?>

        <?php if ( is_single() ) { ?>
            > <span><a href="<?php echo get_permalink( get_option( 'page_for_posts' ) ); ?>"><?php echo $blogTitle; ?></a></span> >
            <span><?php echo get_the_title(); ?></span>
        <?php } ?>

        <?php if (is_page() ) { ?>
            > <span><?php echo get_the_title(); ?></span>
        <?php } ?>

        <?php if (is_search() ) { ?>
            > <span> Search results: <?php echo the_search_query(); ?></span>
        <?php } ?>

    </div>

<?php } ?>

Hope this helps! Good luck!