Advertisement
alamin_89

WordPress Breadcrumbs Function Code

Jun 28th, 2018
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 4.67 KB | None | 0 0
  1. // the raw function on function php
  2. if ( !function_exists( 'moderna_breadcrumbs' ) ) {
  3.     function moderna_breadcrumbs() {
  4.         $showOnHome = 0;
  5.         $delimiter = '»';
  6.         $home = 'Home';
  7.         $showCurrent = 1;
  8.         $before = '<span class="current">';
  9.         $after = '</span>';
  10.  
  11.         global $post;
  12.         $homelink = get_bloginfo('url');
  13.         if ( is_home() || is_front_page() ) {
  14.             if ( $showOnHome == 1 ) {
  15.                 echo '<div class="moderna-breadcrumb"><a href="' . $homelink . '">' . $home . '</a></div>';
  16.             }
  17.         } else {
  18.             echo '<div class="moderna-breadcrumbs"><a href="' . $homelink . '">' . $home . '</a> ' . $delimiter . ' ';
  19.  
  20.             if ( is_category() ) {
  21.                 $thisCat = get_category(get_query_var('cat'), false);
  22.                 if ( $thisCat->parent != 0 ) {
  23.                     echo get_category_parents( $thisCat->parent, true, ' ' . $delimiter . ' ' );
  24.                 } else {
  25.                     echo $before . 'Archieve by category "' . single_cat_title( '', false ) . '"' . $after;
  26.                 }
  27.             } elseif ( is_search() ) {
  28.                 echo $before . 'Search results for "' . get_search_query() . '"' . $after;
  29.             } elseif ( is_day() ) {
  30.                 echo '<a href="' . get_year_link( get_the_time( 'Y' ) ) . '">' . get_the_time( 'Y' ) . '</a> ' . $delimiter . ' ';
  31.                 echo '<a href="' . get_month_link( get_the_time( 'Y' ), get_the_time( 'm' ) ) . '">' . get_the_time( 'F' ) . '</a> ' . $delimiter . ' ';
  32.                 echo $before . get_the_time( 'd' ) . $after;
  33.             } elseif ( is_month() ) {
  34.                 echo '<a href="' . get_year_link( get_the_time( 'Y' ) ) . '">' . get_the_time( 'Y' ) . '</a> ' . $delimiter . ' ';
  35.                 echo $before . get_the_time( 'F' ) . $after;
  36.             } elseif ( is_year() ) {
  37.                 echo $before . get_the_time( 'Y' ) . $after;
  38.             } elseif ( is_single() && !is_attachment() ) {
  39.                 if ( get_post_type() != 'post' ) {
  40.                     $post_type = get_post_type_object( get_post_type() );
  41.                     $slug = $post_type->rewrite;
  42.                     echo '<a href="' . $homelink . '/' . $slug['slug'] . '/">' . $post_type->labels->singular_name . '</a>';
  43.                     if ( $showCurent == 1 ) {
  44.                         echo ' ' . $delimiter . ' ' . $before . get_the_title() . $after;
  45.                     }
  46.                 } else {
  47.                     $cat = get_the_category();
  48.                     $cat = $cat[0];
  49.                     $cats = get_category_parents( $cat, true, ' ' . $delimiter . ' ' );
  50.                     if ( $showCurrent == 0 ) {
  51.                         $cats = preg_replace( "#^(.+)\s$delimiter\s$#", "$1", $cats );
  52.                     }
  53.                     echo $cats;
  54.                     if ( $showCurrent == 1 ) {
  55.                         echo $before . get_the_title() . $after;
  56.                     }
  57.                 }
  58.             } elseif ( !is_single() && !is_page() && get_post_type() != 'post' && !is_404() ) {
  59.                 $post_type = get_post_type_object( get_post_type() );
  60.                 echo $before . $post_type->labels->singualr_name . $after;
  61.             } elseif ( is_attachment() ) {
  62.                 $parent = get_post( $post->post_parent );
  63.                 $cat = get_the_category( $parent->ID );
  64.                 $cat = $cat[0];
  65.                 echo get_category_parents( $cat, true, ' ' . $delimiter . ' ' );
  66.                 echo '<a href="' . get_permalink( $parent ) . '">' . $parent->post_title . '</a>';
  67.                 if ( $showCurrent == 1 ) {
  68.                     echo ' ' . $delimiter . ' ' . $before . get_the_title() . $after;
  69.                 }
  70.             } elseif ( is_page() && !$post->post_parent ) {
  71.                 if ( $showCurrent == 1 ) {
  72.                     echo $before . get_the_title() . $after;
  73.                 }
  74.             } elseif ( is_page() && $post->post_parent ) {
  75.                 $parent_id = $post->post_parent;
  76.                 $breadcrumbs = array();
  77.                 while ( $parent_id ) {
  78.                     $page = get_page( $parent_id );
  79.                     $breadcrumbs[] = '<a href="' . get_permalink( $page->ID ) . '">' . get_the_title( $page->ID ) . '</a>';
  80.                     $parent_id = $page->post_parent;
  81.                 }
  82.                 $breadcrumbs = array_reverse( $breadcrumbs );
  83.                 for ( $i = 0;$i < count ( $breadcrumbs ); $i++ ) {
  84.                     echo $breadcrumbs( $i );
  85.                     if ( $i != count( $breadcrumbs-1 ) ) {
  86.                         echo ' ' . $delimiter . ' ';
  87.                     }
  88.                 }
  89.                 if ( $showCurrent == 1 ) {
  90.                     echo ' ' . $delimiter . ' ' . $before . get_the_title() . $after;
  91.                 }
  92.             } elseif ( is_tag() ) {
  93.                 echo $before . 'Posts tagged "' . single_tag_title( '', false ) . '"' . $after;
  94.             } elseif ( is_author() ) {
  95.                 global $author;
  96.                 $userdata = get_userdata( $author );
  97.                 echo $before . 'Articles posted by ' . $userdata->display_name . $after;
  98.             } elseif ( is_404() ) {
  99.                 echo $before . 'Error 404' . $after;
  100.             }
  101.  
  102.             if ( get_query_var( 'paged' ) ) {
  103.                 if ( is_category() || is_day() || is_month() || is_year() || is_search() || is_tag() || is_author() ) {
  104.                     echo ' (';
  105.                 }
  106.                 echo __( 'Page' ) . ' ' . get_query_var( 'paged' );
  107.                 if ( is_category() || is_day() || is_month() || is_year() || is_search() || is_tag() || is_author() ) {
  108.                     echo ')';
  109.                 }
  110.             }
  111.  
  112.             echo '</div>';
  113.         }
  114.     }
  115. }
  116.  
  117. // the trigger function on header php
  118.  
  119. if ( function_exists( 'moderna_breadcrumbs' ) ) { moderna_breadcrumbs(); }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement