Senin - Sabtu : 08.00 -17.00 WIB
WA 089508603247 Call 085215359973
E-mail : tiera.damarsa@gmail.com
Menu

WordPress Breadcrumbs Simple Version

Breadcrumbs adalah semacam link kecil yang biasanya ada di atas judul postingan wordpress. Bentuknya bermacam-macam tergantung bawaan theme yang digunakan. Isinya berupa Home – Nama Kategori atau bisa juga ada tambahan lainnya. Kurang lebih seperti itulah.

Nah, kali ini kita akan mencoba membuat Breadcrumbs yang simpel alias sederhana. Bagi yang sudah puas dengan Breadcrumbs bawaan theme ya gpp. Tapi bagi yang ingin lebih simpel maka bisa ikuti cara berikut ini.

Pertama, buka file function.php yang ada di folder theme yang digunakan. Bisa melalui Cpanel maupun Theme Editor.

Kedua, tambahkan baris-baris kode berikut :

<?php
function breadcrumbs_sederhana() {
       
    // Settings
    //$separator          = '&gt;';
    //$separator          = '&ndash;';
    $separator          = '&raquo;';
    $breadcrums_id      = 'breadcrumbs';
    $breadcrums_class   = 'breadcrumbs';
    $home_title         = 'Home';
      
    // If you have any custom post types with custom taxonomies, put the taxonomy name below (e.g. product_cat)
    $custom_taxonomy    = 'product_cat';
       
    // Get the query & post information
    global $post,$wp_query;
       
    // Do not display on the homepage
    if ( !is_front_page() ) {
       
        // Build the breadcrums
        echo '
<ul id="' . $breadcrums_id . '" class="' . $breadcrums_class . '">';
           
        // 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>

';
           
        if ( is_archive() && !is_tax() && !is_category() && !is_tag() ) {
              
            echo '
<li class="item-current item-archive"><strong class="bread-current bread-archive">' . post_type_archive_title($prefix, false) . '</strong></li>

';
              
        } else if ( is_archive() && is_tax() && !is_category() && !is_tag() ) {
              
            // If post is a custom post type
            $post_type = get_post_type();
              
            // If it is a custom post type display name and link
            if($post_type != 'post') {
                  
                $post_type_object = get_post_type_object($post_type);
                $post_type_archive = get_post_type_archive_link($post_type);
              
                echo '
<li class="item-cat item-custom-post-type-' . $post_type . '"><a class="bread-cat bread-custom-post-type-' . $post_type . '" href="' . $post_type_archive . '" title="' . $post_type_object->labels->name . '">' . $post_type_object->labels->name . '</a></li>

';
                echo '
<li class="separator"> ' . $separator . ' </li>

';
              
            }
              
            $custom_tax_name = get_queried_object()->name;
            echo '
<li class="item-current item-archive"><strong class="bread-current bread-archive">' . $custom_tax_name . '</strong></li>

';
              
        } else if ( is_single() ) {
              
            // If post is a custom post type
            $post_type = get_post_type();
              
            // If it is a custom post type display name and link
            if($post_type != 'post') {
                  
                $post_type_object = get_post_type_object($post_type);
                $post_type_archive = get_post_type_archive_link($post_type);
              
                echo '
<li class="item-cat item-custom-post-type-' . $post_type . '"><a class="bread-cat bread-custom-post-type-' . $post_type . '" href="' . $post_type_archive . '" title="' . $post_type_object->labels->name . '">' . $post_type_object->labels->name . '</a></li>

';
                echo '
<li class="separator"> ' . $separator . ' </li>

';
              
            }
              
            // Get post category info
            
            $category = get_the_category();
             
            if(!empty($category)) {
              
                // Get last category post is in
                $last_category = end(array_values($category));
                  
                // Get parent any categories and create array
                $get_cat_parents = rtrim(get_category_parents($last_category->term_id, true, ','),',');
                $cat_parents = explode(',',$get_cat_parents);
                // Loop through parent categories and store in variable $cat_display
                $cat_display = '';
                $cats1 = $category[0]->cat_name;
                $cats2 = $category[1]->cat_name;
                $lnkcats1 = '<a href="'.get_category_link($category[0]->term_id).'">'.$category[0]->cat_name.'</a>';
                $lnkcats2 = '<a href="'.get_category_link($category[1]->term_id).'">'.$category[1]->cat_name.'</a>';
                //echo $get_cat_parents[1];
                if ($cats1!=='Headline') {
                    $cat_display .= '
<li class="item-cat">'.$lnkcats1.'</li>

'; 
                    $cat_display .= '
<li class="separator" style="display:none"> ' . $separator . ' </li>

';
                } else { 
                    $cat_display .= '
<li class="item-cat">'.$lnkcats2.'</li>

'; 
                    $cat_display .= '
<li class="separator" style="display:none"> ' . $separator . ' </li>

'; 
                }
                //aslinya
                // Loop through parent categories and store in variable $cat_display
                /*$cat_display = '';
                foreach($cat_parents as $parents) {
                    $cat_display .= '
<li class="item-cat">'.$parents.'</li>

';
                    $cat_display .= '
<li class="separator"> ' . $separator . ' </li>

';
                } */
                
            }
              
            // If it's a custom post type within a custom taxonomy
            $taxonomy_exists = taxonomy_exists($custom_taxonomy);
            if(empty($last_category) && !empty($custom_taxonomy) && $taxonomy_exists) {
                   
                $taxonomy_terms = get_the_terms( $post->ID, $custom_taxonomy );
                $cat_id         = $taxonomy_terms[0]->term_id;
                $cat_nicename   = $taxonomy_terms[0]->slug;
                $cat_link       = get_term_link($taxonomy_terms[0]->term_id, $custom_taxonomy);
                $cat_name       = $taxonomy_terms[0]->name;
               
            }
              
            // Check if the post is in a category
            if(!empty($last_category)) {
                echo $cat_display;
                echo '
<li class="item-current item-' . $post->ID . '" style="display:none"><strong class="bread-current bread-' . $post->ID . '" title="' . get_the_title() . '">' . get_the_title() . '</strong></li>

';
                  
            // Else if post is in a custom taxonomy
            } else if(!empty($cat_id)) {
                  
                echo '
<li class="item-cat item-cat-' . $cat_id . ' item-cat-' . $cat_nicename . '"><a class="bread-cat bread-cat-' . $cat_id . ' bread-cat-' . $cat_nicename . '" href="' . $cat_link . '" title="' . $cat_name . '">' . $cat_name . '</a></li>

';
                echo '
<li class="separator"> ' . $separator . ' </li>

';
                echo '
<li class="item-current item-' . $post->ID . '"><strong class="bread-current bread-' . $post->ID . '" title="' . get_the_title() . '">' . get_the_title() . '</strong></li>

';
              
            } else {
                  
                echo '
<li class="item-current item-' . $post->ID . '"><strong class="bread-current bread-' . $post->ID . '" title="' . get_the_title() . '">' . get_the_title() . '</strong></li>

';
                  
            }
              
        } else if ( is_category() ) {
               
            // Category page
            echo '
<li class="item-current item-cat"><strong class="bread-current bread-cat">' . single_cat_title('', false) . '</strong></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
                if ( !isset( $parents ) ) $parents = null;
                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 . '"><strong title="' . get_the_title() . '"> ' . get_the_title() . '</strong></li>

';
                   
            } else {
                   
                // Just display current page if not parents
                echo '
<li class="item-current item-' . $post->ID . '"><strong class="bread-current bread-' . $post->ID . '"> ' . get_the_title() . '</strong></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 );
            $get_term_id    = $terms[0]->term_id;
            $get_term_slug  = $terms[0]->slug;
            $get_term_name  = $terms[0]->name;
               
            // Display the tag name
            echo '
<li class="item-current item-tag-' . $get_term_id . ' item-tag-' . $get_term_slug . '"><strong class="bread-current bread-tag-' . $get_term_id . ' bread-tag-' . $get_term_slug . '">' . $get_term_name . '</strong></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') . '"><strong class="bread-current bread-' . get_the_time('j') . '"> ' . get_the_time('jS') . ' ' . get_the_time('M') . ' Archives</strong></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') . '"><strong class="bread-month bread-month-' . get_the_time('m') . '" title="' . get_the_time('M') . '">' . get_the_time('M') . ' Archives</strong></li>

';
               
        } else if ( is_year() ) {
               
            // Display year archive
            echo '
<li class="item-current item-current-' . get_the_time('Y') . '"><strong class="bread-current bread-current-' . get_the_time('Y') . '" title="' . get_the_time('Y') . '">' . get_the_time('Y') . ' Archives</strong></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 . '"><strong class="bread-current bread-current-' . $userdata->user_nicename . '" title="' . $userdata->display_name . '">' . 'Author: ' . $userdata->display_name . '</strong></li>';
           
        } else if ( get_query_var('paged') ) {
               
            // Paginated archives
            echo '
<li class="item-current item-current-' . get_query_var('paged') . '"><strong class="bread-current bread-current-' . get_query_var('paged') . '" title="Page ' . get_query_var('paged') . '">'.__('Page') . ' ' . get_query_var('paged') . '</strong></li>

';
               
        } else if ( is_search() ) {
           
            // Search results page
            echo '
<li class="item-current item-current-' . get_search_query() . '"><strong class="bread-current bread-current-' . get_search_query() . '" title="Search results for: ' . get_search_query() . '">Search results for: ' . get_search_query() . '</strong></li>

';
           
        } elseif ( is_404() ) {
               
            // 404 page
            echo '
<li>' . 'Error 404' . '</li>';
        }
       
        echo '</ul>';
           
    }
       
}
?>

Ketiga, buka file single-post.php karena lokasi Breadcrumbs biasanya tepat di atas judul artikel. Tambahkan kode berikut.

<?php breadcrumbs_sederhana() ?>

Bila sudah silakan lihat hasilnya. Semoga bermanfaat.

Baca Artikel Lainnya:

  1. Quick Way to Solve PHP Undefined Constant
  2. Menulis Source Code di Postingan WordPress
  3. Quick Way to Solve PHP Warning: Cannot modify header information – headers already sent by (output started at)
  4. Hubungan Postie Plugin dan Checkbox Form
  5. Flickr sebagai Solusi Penyimpanan Gambar WordPress

Leave a Reply

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