Snippets

Rik Kendell Breadcrumbs

Created by Rik Kendell last modified
1
2
3
4
5
6
.breadcrumbs {
    margin-left: 0;
    li {
        display: inline;
    }
}
// Breadcrumbs
	function the_breadcrumb () {	     
	    // Settings
	    $separator  = '>';
	    $id         = 'breadcrumbs';
	    $class      = 'breadcrumbs';
	    $home_title = 'Home';

	    // Get the query & post information
	    global $post,$wp_query;
	    $category = get_the_category();
	     
	    // Build the breadcrums
	    echo '<ul id="' . $id . '" class="' . $class . '">';
	     
	    // Do not display on the homepage
	    if ( !is_front_page() ) {	         
	        // Home page
	        echo '<li class="item-home"><a class="bread-link bread-home" href="' . get_home_url() . '" title="' . $home_title . '">' . $home_title . '</a></li>';
	        echo '<li class="separator separator-home"> ' . $separator . ' </li>';
	         
	        // Hacky One For Products/Solution
	        if(is_single() && $post->post_type == 'solution') {
	        	echo '<li><a href="/products/">Products</a></li>';
	        	//echo '<li class="separator">'.$separator.'</li>';
	        	//echo '<li><a href="/solutions/products/">Products</a></li>';
	        	//echo '<li class="separator">'.$separator.'</li>';
	        	//echo '<li class="item-current">'.$post->post_title.'</li>';
	        }
	        // Another for individual resources (not to be confused with resource types)
	        if(is_single() && $post->post_type == 'resource') {
	        	echo '<li><a href="/resources/">Resources</a></li>';
	        	echo '<li class="separator">'.$separator.'</li>';
	        	echo '<li class="item-current">'.$post->post_title.'</li>';
	        }
	        // Products landing page
	        if(is_page('Products') ) {
	        	echo '<li><a href="/products/">Products</a></li>';
	        }
	        else if ( is_single() ) {
	            // Single post (Only display the first category)
	            echo '<li class="separator separator-' . $category[0]->term_id . '"> ' . $separator . ' </li>';
	            echo '<li class="item-current item-' . $post->ID . '"><span class="bread-current bread-' . $post->ID . '" title="' . get_the_title() . '">' . get_the_title() . '</span></li>';	             
	        }
			// News / 'Post' archive
	        if ( is_home() ) {
	        	echo '<li><a href="/news/">News</a></li>';
	        }
	        // Custom post type archives
	       	else if (is_archive() ) {
	       		$archive_title = post_type_archive_title( '', false );
	        	echo '<li class="item-current"><span class="bread-current">' . $archive_title . '</span><li>';
	        }
			else if ( is_category() ) {	             
	            // Category page
	            echo '<li class="item-current item-cat-' . $category[0]->term_id . ' item-cat-' . $category[0]->category_nicename . '"><span class="bread-current bread-cat-' . $category[0]->term_id . ' bread-cat-' . $category[0]->category_nicename . '">' . $category[0]->cat_name . '</span></li>';
	        }
	        // Solutions Sub Pages - Some Hardcoded Type Stuffs
	        else if(is_tax('sector')) {
	        	echo '<li><a href="/digital-health-solutions/">Solutions</a></li>';
	        	echo '<li class="separator">'.$separator.'</li>';
	        	$term = $wp_query->get_queried_object();
    			$title = $term->name;
	        	echo '<li class="item-current">'.$title.'</li>';
	        }
	        // Resources Sub Pages - Some Hardcoded Type Stuffs
	        else if(is_tax('type')) {
	        	echo '<li><a href="/resources/">Resources</a></li>';
	        	echo '<li class="separator">'.$separator.'</li>';
	        	$term = $wp_query->get_queried_object();
    			$title = $term->name;
	        	echo '<li class="item-current">'.$title.'</li>';
	        }
	        else if ( is_page() ) {	
	            // Standard page
	            if( $post->post_parent ){	                 
	                // If child page, get parents 
	                $anc = get_post_ancestors( $post->ID );
	                 
	                // Get parents in the right order
	                $anc = array_reverse($anc);
	                 
	                // Parent page loop
	                foreach ( $anc as $ancestor ) {
	                    $parents .= '<li class="item-parent item-parent-' . $ancestor . '"><a class="bread-parent bread-parent-' . $ancestor . '" href="' . get_permalink($ancestor) . '" title="' . get_the_title($ancestor) . '">' . get_the_title($ancestor) . '</a></li>';
	                    $parents .= '<li class="separator separator-' . $ancestor . '"> ' . $separator . ' </li>';
	                }
	                 
	                // Display parent pages
	                echo $parents;
	                 
	                // Current page
	                echo '<li class="item-current item-' . $post->ID . '"><span title="' . get_the_title() . '"> ' . get_the_title() . '</span></li>';	                 
	            } else {	                 
	                // Just display current page if not parents
	                echo '<li class="item-current item-' . $post->ID . '"><span class="bread-current bread-' . $post->ID . '"> ' . get_the_title() . '</span></li>';	                 
	            }	             
	        } else if ( is_tag() ) {	             
	            // Tag page
	             
	            // Get tag information
	            $term_id = get_query_var('tag_id');
	            $taxonomy = 'post_tag';
	            $args ='include=' . $term_id;
	            $terms = get_terms( $taxonomy, $args );
	             
	            // Display the tag name
	            echo '<li class="item-current item-tag-' . $terms[0]->term_id . ' item-tag-' . $terms[0]->slug . '"><span class="bread-current bread-tag-' . $terms[0]->term_id . ' bread-tag-' . $terms[0]->slug . '">' . $terms[0]->name . '</span></li>';
	        } elseif ( is_day() ) {	             
	            // Day archive
	             
	            // Year link
	            echo '<li class="item-year item-year-' . get_the_time('Y') . '"><a class="bread-year bread-year-' . get_the_time('Y') . '" href="' . get_year_link( get_the_time('Y') ) . '" title="' . get_the_time('Y') . '">' . get_the_time('Y') . ' Archives</a></li>';
	            echo '<li class="separator separator-' . get_the_time('Y') . '"> ' . $separator . ' </li>';
	             
	            // Month link
	            echo '<li class="item-month item-month-' . get_the_time('m') . '"><a class="bread-month bread-month-' . get_the_time('m') . '" href="' . get_month_link( get_the_time('Y'), get_the_time('m') ) . '" title="' . get_the_time('M') . '">' . get_the_time('M') . ' Archives</a></li>';
	            echo '<li class="separator separator-' . get_the_time('m') . '"> ' . $separator . ' </li>';
	             
	            // Day display
	            echo '<li class="item-current item-' . get_the_time('j') . '"><span class="bread-current bread-' . get_the_time('j') . '"> ' . get_the_time('jS') . ' ' . get_the_time('M') . ' Archives</span></li>';	             
	        } else if ( is_month() ) {	             
	            // Month Archive
	             
	            // Year link
	            echo '<li class="item-year item-year-' . get_the_time('Y') . '"><a class="bread-year bread-year-' . get_the_time('Y') . '" href="' . get_year_link( get_the_time('Y') ) . '" title="' . get_the_time('Y') . '">' . get_the_time('Y') . ' Archives</a></li>';
	            echo '<li class="separator separator-' . get_the_time('Y') . '"> ' . $separator . ' </li>';
	             
	            // Month display
	            echo '<li class="item-month item-month-' . get_the_time('m') . '"><span class="bread-month bread-month-' . get_the_time('m') . '" title="' . get_the_time('M') . '">' . get_the_time('M') . ' Archives</span></li>';	             
	        } else if ( is_year() ) {	             
	            // Display year archive
	            echo '<li class="item-current item-current-' . get_the_time('Y') . '"><span class="bread-current bread-current-' . get_the_time('Y') . '" title="' . get_the_time('Y') . '">' . get_the_time('Y') . ' Archives</span></li>';
	        } else if ( is_author() ) {	             
	            // Auhor archive
	             
	            // Get the author information
	            global $author;
	            $userdata = get_userdata( $author );
	             
	            // Display author name
	            echo '<li class="item-current item-current-' . $userdata->user_nicename . '"><span class="bread-current bread-current-' . $userdata->user_nicename . '" title="' . $userdata->display_name . '">' . 'Author: ' . $userdata->display_name . '</span></li>';
	        } else if ( get_query_var('paged') ) {	             
	            // Paginated archives
	            echo '<li class="item-current item-current-' . get_query_var('paged') . '"><span class="bread-current bread-current-' . get_query_var('paged') . '" title="Page ' . get_query_var('paged') . '">'.__('Page') . ' ' . get_query_var('paged') . '</span></li>';
	        } else if ( is_search() ) {	         
	            // Search results page
	            echo '<li class="item-current item-current-' . get_search_query() . '"><span class="bread-current bread-current-' . get_search_query() . '" title="Search results for: ' . get_search_query() . '">Search results for: ' . get_search_query() . '</span></li>';
	        } elseif ( is_404() ) {
	            // 404 page
	            echo '<li>' . 'Error 404' . '</li>';
	        }	         
	    }	     
	    echo '</ul>';	     
	}
<?php get_header(); ?>

<section id="content">



    <?php // BREADCRUMB
    the_breadcrumb(); ?>
    
    
    
    
    <?php if (have_posts()) while (have_posts()) : the_post(); ?>
    
        <article>    
            <?php if (have_posts()) while (have_posts()) : the_post(); ?>
					
	        <h1><?php the_title(); ?></h1>

		    <?php the_content(); ?>
	    </article>

	<?php endwhile; ?>

</section>

<?php get_footer(); ?>

Comments (0)

HTTPS SSH

You can clone a snippet to your computer for local editing. Learn more.