Skip to content

Instantly share code, notes, and snippets.

@nucab
Forked from jazzsequence/breadcrumbs.php
Created December 23, 2015 15:28
Show Gist options
  • Save nucab/a3dc2b94d107f8c50c01 to your computer and use it in GitHub Desktop.
Save nucab/a3dc2b94d107f8c50c01 to your computer and use it in GitHub Desktop.
WordPress SEO Breadcrumbs
/**
* SEO Breadcrumbs
* @author Chris Reynolds
* @link http://www.quickonlinetips.com/archives/2012/02/wordpress-seo-breadcrumbs/
* Search engine optimized breadcrumbs. Original source was taken from the link above, with changes made so that it supports pages as well as posts and integrates into Twitter Bootstrap breadcrumb styles
*/
function seo_breadcrumbs() {
// this sets up some breadcrumbs for posts & pages that support Twitter Bootstrap styles
$separator = ' <span class="divider">&rsaquo;</span>';
echo '<ul xmlns:v="http://rdf.data-vocabulary.org/#" class="breadcrumb">';
global $post;
echo '<li><span typeof="v:Breadcrumb"><a rel="v:url" property="v:title" href="' . get_home_url() . '">Home</a></span>' . $separator . '</li>';
if ( is_page() && $post->post_parent ) {
// get the parent page breadcrumb
$parent_title = get_the_title($post->post_parent);
if ( $parent_title != the_title(' ', ' ', false) ) {
echo '<li><span typeof="v:Breadcrumb"><a rel="v:url" property="v:title" href=' . get_permalink($post->post_parent) . ' ' . 'title=' . $parent_title . '>' . $parent_title . '</a></span>' . $separator . '</li>';
}
} else {
// first, display the blog page link, since that's a global parent, but only if it's set to be different than the home page
if ( get_option('page_for_posts') ) {
// defines the blog page if it's set
$blog_page_uri = get_permalink( get_option( 'page_for_posts' ) );
echo '<li><span typeof="v:Breadcrumb"><a rel="v:url" property="v:title" href="' . $blog_page_uri . '">News</a></span>' . $separator . '</li>';
}
// this is a post, so get the category, if it exists
$category = get_the_category();
if ($category) {
foreach($category as $category) {
echo '<li><span typeof="v:Breadcrumb"><a rel="v:url" property="v:title" href="' . get_category_link($category->term_id) . '">' . $category->name . '</a></span>' . $separator . '</li>';
}
}
}
echo '<li class="active">' . the_title() . '</li>';
echo '</ul>';
}
// syntax: <?php seo_breadcrumbs(); ?>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment