A little question please help me

Discussion in 'WordPress' started by hallianonline, Mar 25, 2013.

  1. #1
    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):
     
    hallianonline, Mar 25, 2013 IP
  2. themes4all

    themes4all Well-Known Member

    Messages:
    662
    Likes Received:
    47
    Best Answers:
    6
    Trophy Points:
    100
    #2
    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  = ' &raquo; '; // 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
     
    themes4all, Mar 26, 2013 IP