Skip to content

Instantly share code, notes, and snippets.

@jazzsequence
Created October 11, 2012 19:41
Show Gist options
  • Star 5 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save jazzsequence/3875003 to your computer and use it in GitHub Desktop.
Save jazzsequence/3875003 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