Skip to content

Instantly share code, notes, and snippets.

@tinotriste
Last active April 20, 2024 05:36
Show Gist options
  • Save tinotriste/5387124 to your computer and use it in GitHub Desktop.
Save tinotriste/5387124 to your computer and use it in GitHub Desktop.
Wordpress: Breadcrumbs function
<?php
/*=============================================
= BREADCRUMBS =
=============================================*/
// to include in functions.php
function the_breadcrumb() {
$sep = ' > ';
if (!is_front_page()) {
// Start the breadcrumb with a link to your homepage
echo '<div class="breadcrumbs">';
echo '<a href="';
echo get_option('home');
echo '">';
bloginfo('name');
echo '</a>' . $sep;
// Check if the current page is a category, an archive or a single page. If so show the category or archive name.
if (is_category() || is_single() ){
the_category('title_li=');
} elseif (is_archive() || is_single()){
if ( is_day() ) {
printf( __( '%s', 'text_domain' ), get_the_date() );
} elseif ( is_month() ) {
printf( __( '%s', 'text_domain' ), get_the_date( _x( 'F Y', 'monthly archives date format', 'text_domain' ) ) );
} elseif ( is_year() ) {
printf( __( '%s', 'text_domain' ), get_the_date( _x( 'Y', 'yearly archives date format', 'text_domain' ) ) );
} else {
_e( 'Blog Archives', 'text_domain' );
}
}
// If the current page is a single post, show its title with the separator
if (is_single()) {
echo $sep;
the_title();
}
// If the current page is a static page, show its title.
if (is_page()) {
echo the_title();
}
// if you have a static page assigned to be you posts list page. It will find the title of the static page and display it. i.e Home >> Blog
if (is_home()){
global $post;
$page_for_posts_id = get_option('page_for_posts');
if ( $page_for_posts_id ) {
$post = get_post($page_for_posts_id);
setup_postdata($post);
the_title();
rewind_posts();
}
}
echo '</div>';
}
}
/*
* Credit: http://www.thatweblook.co.uk/blog/tutorials/tutorial-wordpress-breadcrumb-function/
*/
?>
<!-- start breadcrumbs -->
<?php the_breadcrumb(); ?>
<!-- end breadcrumbs -->
@BlazeIsClone
Copy link

Really nice script still works like a charm!

@valentin-grenier
Copy link

Thanks a lot !!

@farbodakvan
Copy link

Thanks :)

@mikemike
Copy link

mikemike commented May 2, 2023

For those looking for a more thorough implementation please take a look at how to handle breadcrumbs in WordPress. It includes most of what this gist does, but then also includes various missing features for handling custom post types, parent pages and doesn't use any deprecated functions. Definitely recommend.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment