hi there, I have a little question that i am facing a little problem in my theme breadcrumbs and dont know how to resolve this issue actually the breadcrumbs is not seprating the main and primary category it should be work like Home > Main Category > Parent Category > Parent Sub Category > Sample Post title but its showing me like this Home> MainCategory Parent Category Parent Sub Vategory> Sample post title please help me to resolve this issue here is my breadcrumbers code /* --------------------------------------------------------------------------- * Breadcrumbs * --------------------------------------------------------------------------- */ function doover_breadcrumbs() { global $post; $home = __('Home','doover'); $homeLink = home_url(); echo '<ul class="breadcrumbs">'; echo '<li class="home">' . __('You are here:','doover') . '</li>'; echo '<li><a href="' . $homeLink . '">' . $home . '</a></li>'; // Blog Category if ( is_category() ) { echo '<li class="last"><a href="'. curPageURL() .'">' . __('Archive by category','doover').' "' . single_cat_title('', false) . '"</a></li>'; // Blog Day } elseif ( is_day() ) { echo '<li><a href="'. get_year_link(get_the_time('Y')) . '">'. get_the_time('Y') .'</a></li>'; echo '<li><a href="'. get_month_link(get_the_time('Y'),get_the_time('m')) .'">'. get_the_time('F') .'</a></li>'; echo '<li class="last"><a href="'. curPageURL() .'">'. get_the_time('d') .'</a></li>'; // Blog Month } elseif ( is_month() ) { echo '<li><a href="' . get_year_link(get_the_time('Y')) . '">' . get_the_time('Y') . '</a></li>'; echo '<li class="last"><a href="'. curPageURL() .'">'. get_the_time('F') .'</a></li>'; // Blog Year } elseif ( is_year() ) { echo '<li class="last"><a href="'. curPageURL() .'">'. get_the_time('Y') .'</a></li>'; // Single Post } elseif ( is_single() && !is_attachment() ) { // Custom post type if ( get_post_type() != 'post' ) { $post_type = get_post_type_object(get_post_type()); $slug = $post_type->rewrite; if( $slug['slug'] == doover_get_option( 'portfolio_item_slug', 'portfolio-item', true ) && $portfolio_page_id = doover_get_option( 'portfolio_page' ) ) { echo '<li><a href="' . get_page_link( $portfolio_page_id ) . '">'. get_the_title( $portfolio_page_id ) .'</a></li>'; } else { echo '<li><a href="' . $homeLink . '/' . $slug['slug'] . '/">' . $post_type->labels->singular_name . '</a></li>'; } echo '<li class="last"><a href="' . curPageURL() . '">'. wp_title( '',false ) .'</a></li>'; // Blog post } else { $cat = get_the_category(); $cat = $cat[0]; echo '<li>'; echo get_category_parents($cat, TRUE, ''); echo '</li>'; echo '<li class="last"><a href="' . curPageURL() . '">'. wp_title( '',false ) .'</a></li>'; } // Taxonomy } elseif( get_post_taxonomies() ) { $post_type = get_post_type_object(get_post_type()); if( $post_type->name == 'portfolio' && $portfolio_page_id = doover_get_option( 'portfolio_page' ) ) { echo '<li><a href="' . get_page_link( $portfolio_page_id ) . '">'. get_the_title( $portfolio_page_id ) .'</a></li>'; } echo '<li class="last"><a href="' . curPageURL() . '">'. wp_title( '',false ) .'</a></li>'; // Page with parent } 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); foreach ($breadcrumbs as $crumb) echo $crumb; echo '<li class="last"><a href="' . curPageURL() . '">'. get_the_title() .'</a></li>'; // Default } else { echo '<li class="last"><a href="' . curPageURL() . '">'. get_the_title() .'</a></li>'; } echo '</ul>'; } Code (markup):
Use this Function Instead : function dimox_breadcrumbs() { /* === OPTIONS === */ $text['home'] = 'Home'; // text for the 'Home' link $text['category'] = 'Archive by Category "%s"'; // text for a category page $text['search'] = 'Search Results for "%s" Query'; // text for a search results page $text['tag'] = 'Posts Tagged "%s"'; // text for a tag page $text['author'] = 'Articles Posted by %s'; // text for an author page $text['404'] = 'Error 404'; // text for the 404 page $showCurrent = 1; // 1 - show current post/page title in breadcrumbs, 0 - don't show $showOnHome = 0; // 1 - show breadcrumbs on the homepage, 0 - don't show $delimiter = ' » '; // delimiter between crumbs $before = '<span class="current">'; // tag before the current crumb $after = '</span>'; // tag after the current crumb /* === END OF OPTIONS === */ global $post; $homeLink = get_bloginfo('url') . '/'; $linkBefore = '<span typeof="v:Breadcrumb">'; $linkAfter = '</span>'; $linkAttr = ' rel="v:url" property="v:title"'; $link = $linkBefore . '<a' . $linkAttr . ' href="%1$s">%2$s</a>' . $linkAfter; if (is_home() || is_front_page()) { if ($showOnHome == 1) echo '<div id="crumbs"><a href="' . $homeLink . '">' . $text['home'] . '</a></div>'; } else { echo '<div id="crumbs" xmlns:v="http://rdf.data-vocabulary.org/#">' . sprintf($link, $homeLink, $text['home']) . $delimiter; if ( is_category() ) { $thisCat = get_category(get_query_var('cat'), false); if ($thisCat->parent != 0) { $cats = get_category_parents($thisCat->parent, TRUE, $delimiter); $cats = str_replace('<a', $linkBefore . '<a' . $linkAttr, $cats); $cats = str_replace('</a>', '</a>' . $linkAfter, $cats); echo $cats; } 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, $homeLink . '/' . $slug['slug'] . '/', $post_type->labels->singular_name); 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("#^(.+)$delimiter$#", "$1", $cats); $cats = str_replace('<a', $linkBefore . '<a' . $linkAttr, $cats); $cats = str_replace('</a>', '</a>' . $linkAfter, $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]; $cats = get_category_parents($cat, TRUE, $delimiter); $cats = str_replace('<a', $linkBefore . '<a' . $linkAttr, $cats); $cats = str_replace('</a>', '</a>' . $linkAfter, $cats); echo $cats; printf($link, get_permalink($parent), $parent->post_title); 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[] = 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 ($showCurrent == 1) echo $delimiter . $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 __('Page') . ' ' . get_query_var('paged'); if ( is_category() || is_day() || is_month() || is_year() || is_search() || is_tag() || is_author() ) echo ')'; } echo '</div>'; } } // end dimox_breadcrumbs() PHP: and past this one where you need the breadcrumbs to appear : <?php if (function_exists('dimox_breadcrumbs')) dimox_breadcrumbs(); ?> PHP: Goodluck