<?php
function leatherhouse_breadcrumbs() {
    $showOnHome          = esc_html__( '1', 'leather-house' );  // 1 - Show breadcrumbs on the homepage, 0 - don't show
    $delimiter           = '';  // Delimiter between breadcrumb.
    $home                = esc_html__( 'Home', 'leather-house' );  // Text for the 'Home' link.
    $showCurrent         = esc_html__( '1', 'leather-house' ); // Current post/page title in breadcrumb in use 1, Use 0 for don't show.
    $before              = '<li class="active">'; // Tag before the current Breadcrumb.
    $after               = '</li>'; // Tag after the current Breadcrumb.
    $breadcrumb_seprator = sanitize_text_field( get_theme_mod( 'breadcrumb_seprator', '-' ) );
    global $post;
    $homeLink = esc_url( home_url() );

    if ( is_home() || is_front_page() ) {
        if ( $showOnHome == 1 ) {
            echo '<li><a href="' . $homeLink . '">' . esc_html( $home ) . '</a></li>';
        }
    } else {
        echo '<li><a href="' . $homeLink . '">' . esc_html( $home ) . '</a> ' . '&nbsp' . wp_kses_post( $breadcrumb_seprator ) . '&nbsp';

        if ( is_category() ) {
            $thisCat = get_category( get_query_var( 'cat' ), false );
            if ( $thisCat->parent != 0 ) {
                echo get_category_parents( $thisCat->parent, true, ' ' . ' ' );
            }
            echo $before . esc_html__( 'Archive by category', 'leather-house' ) . ' "' . esc_html( single_cat_title( '', false ) ) . '"' . $after;
        } elseif ( is_search() ) {
            echo $before . esc_html__( 'Search results for ', 'leather-house' ) . ' "' . esc_html( get_search_query() ) . '"' . $after;
        } elseif ( is_day() ) {
            echo '<a href="' . esc_url( get_year_link( get_the_time( 'Y' ) ) ) . '">' . esc_html( get_the_time( 'Y' ) ) . '</a> ' . '&nbsp' . wp_kses_post( $breadcrumb_seprator ) . '&nbsp';
            echo '<a href="' . esc_url( get_month_link( get_the_time( 'Y' ), get_the_time( 'm' ) ) ) . '">' . esc_html( get_the_time( 'F' ) ) . '</a> ' . '&nbsp' . wp_kses_post( $breadcrumb_seprator ) . '&nbsp';
            echo $before . esc_html( get_the_time( 'd' ) ) . $after;
        } elseif ( is_month() ) {
            echo '<a href="' . esc_url( get_year_link( get_the_time( 'Y' ) ) ) . '">' . esc_html( get_the_time( 'Y' ) ) . '</a> ' . esc_attr( $delimiter ) . '&nbsp' . wp_kses_post( $breadcrumb_seprator ) . '&nbsp';
            echo $before . esc_html( get_the_time( 'F' ) ) . $after;
        } elseif ( is_year() ) {
            echo $before . esc_html( 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 = esc_attr( $post_type->rewrite['slug'] );
                echo '<a href="' . esc_url( $homeLink ) . '/' . $slug . '/">' . $post_type->labels->singular_name . '</a>';
                if ( $showCurrent == 1 ) {
                    echo ' ' . esc_attr( $delimiter ) . '&nbsp' . wp_kses_post( $breadcrumb_seprator ) . '&nbsp' . $before . wp_kses_post( get_the_title() ) . $after;
                }
            } else {
                $cat = get_the_category();
                if ( ! empty( $cat ) ) :
                    $cat = $cat[0];
                    $cats = get_category_parents( $cat, true, ' ' . esc_attr( $delimiter ) . '&nbsp' . wp_kses_post( $breadcrumb_seprator ) . '&nbsp' );
                    if ( $showCurrent == 0 ) {
                        $cats = preg_replace( "#^(.+)\s$delimiter\s$#", '$1', $cats );
                    }
                    echo $cats;
                endif;
                if ( $showCurrent == 1 ) {
                    echo $before . esc_html( get_the_title() ) . $after;
                }
            }
        } // Continue with other conditions...
    }
}
