How to Display Breadcrumb without Plugin

By | January 25, 2017
Display Breadcrumb without Plugin.You can create our custom breadcrumbs without any plugin by using this code.
Breadcrumbs are the important part of our website, in wordpress there are several plugins are available for this, but below i posted the code for custom breadcrumbs for our wordpress site. Just add this below code in to your current wordpress theme functions.php and call the second step.

Step 1

<?php 
//breadcrumb
if( !function_exists('increativeweb_breadcrumb')){
 function increativeweb_breadcrumb(){
 
 $showOnHome = 0; // 1 - show "breadcrumbs" on home page, 0 - hide
 $delimiter = '<li class="raquo">|</li>'; // divider
 $home = 'Home'; // text for link "Home"
 $showCurrent = 1; // 1 - show title current post/page, 0 - hide
 $before = '<li class="active">'; // open tag for active breadcrumb
 $after = '</li>'; // close tag for active breadcrumb
 
 global $post;
 $homeLink = home_url();
 
 if (is_front_page()) {
 
 if ($showOnHome == 1) echo '<ul class="icw-breadcrumb"><li><a href="' . $homeLink . '">' . $home . '</a><li></ul>';
 
 } else {
 
 echo '<ul class="icw-breadcrumb"><li><a href="' . $homeLink . '">' . $home . '</a></li> ' . $delimiter . ' ';
 
 if ( is_home() ) {
 echo $before . 'Blog' . $after;
 } elseif ( is_category() ) {
 $thisCat = get_category(get_query_var('cat'), false);
 if ($thisCat->parent != 0) echo get_category_parents($thisCat->parent, TRUE, ' ' . $delimiter . ' ');
 echo $before . 'Category Archives: "' . single_cat_title('', false) . '"' . $after;
 
 } elseif ( is_search() ) {
 echo $before . 'Search for: "' . get_search_query() . '"' . $after;
 
 } elseif ( is_day() ) {
 echo '<li><a href="' . get_year_link(get_the_time('Y')) . '">' . get_the_time('Y') . '</a></li> ' . $delimiter . ' ';
 echo '<li><a href="' . get_month_link(get_the_time('Y'),get_the_time('m')) . '">' . get_the_time('F') . '</a></li> ' . $delimiter . ' ';
 echo $before . get_the_time('d') . $after;
 
 } elseif ( is_month() ) {
 echo '<li><a href="' . get_year_link(get_the_time('Y')) . '">' . get_the_time('Y') . '</a></li> ' . $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_name = get_post_type();
 $post_type = get_post_type_object(get_post_type());
 $slug = $post_type->rewrite['slug'];
 //var_dump($slug);
 //var_dump($post_type);
 echo '<li><a href="' . $homeLink . '/' . $slug . '/">' . $post_type->labels->singular_name . '</a></li>';
 if ($showCurrent == 1) echo ' ' . $delimiter . ' ' . $before . get_the_title() . $after;
 } else {
 $cat = get_the_category(); $cat = $cat[0];
 $cats = get_category_parents($cat, TRUE, ' ' . $delimiter . ' ');
 if ($showCurrent == 0) $cats = preg_replace("#^(.+)s$delimiters$#", "$1", $cats);
 echo $cats;
 if ($showCurrent == 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($post->post_parent);
 $cat = get_the_category($parent->ID); $cat = $cat[0];
 echo get_category_parents($cat, TRUE, ' ' . $delimiter . ' ');
 echo '<li><a href="' . get_permalink($parent) . '">' . $parent->post_title . '</a></li>';
 if ($showCurrent == 1) echo ' ' . $delimiter . ' ' . $before . get_the_title() . $after;
 
 } elseif ( is_page() && !$post->post_parent ) {
 if ($showCurrent == 1) echo $before . get_the_title() . $after;
 
 } elseif ( is_page() && $post->post_parent ) {
 $parent_id = $post->post_parent;
 $breadcrumbs = array();
 while ($parent_id) {
 $page = get_page($parent_id);
 $breadcrumbs[] = '<li><a href="' . get_permalink($page->ID) . '">' . get_the_title($page->ID) . '</a></li>';
 $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 ($showCurrent == 1) echo ' ' . $delimiter . ' ' . $before . get_the_title() . $after;
 
 } elseif ( is_tag() ) {
 echo $before . 'Tag Archives: "' . single_tag_title('', false) . '"' . $after;
 
 } elseif ( is_author() ) {
 global $author;
 $userdata = get_userdata($author);
 
 echo $before . 'by ' . $userdata->display_name . $after;
 
 } elseif ( is_404() ) {
 echo $before . '404' . $after;
 }
 
 if ( get_query_var('paged') ) {
 if ( is_category() || is_day() || is_month() || is_year() || is_search() || is_tag() || is_author() ) echo ' (';
 echo __(' Page') . ' ' . get_query_var('paged');
 if ( is_category() || is_day() || is_month() || is_year() || is_search() || is_tag() || is_author() ) echo ')';
 }
 
 
 echo '</ul>';
 
 }
 
 }
 }

Step 2

After adding the code into functions.php add the below code to where you want to use this function.
<?php if (function_exists('increativeweb_breadcrumb')) echo increativeweb_breadcrumb(); ?>

Well these are two WordPress Tips that might come in handy and if you don’t like to get your hands dirty, you can always use a plugin to do the trick!

Leave a Reply

Your email address will not be published. Required fields are marked *