Eric Nagel

Adding Microformatted Breadcrumbs to Thesis

I have been, or can be if you click on a link and make a purchase, compensated via a cash payment, gift, or something else of value for writing this post. Regardless, I only recommend products or services I use personally and believe will be good for my readers.

I received an email the other day asking how I added my breadcrumbs to my Thesis site.

On the site, they look like this:

Microformat Breadcrumbs

But in the search results, they appear like this:

Breadcrumbs in Search Results

In the search results, the title is linked to the blog post, while the category is linked to the category page.

Here’s how I do it in Thesis

In custom_functions.php, I add the following function:

function breadcrumbs() {
	global $post;

	if (is_single()) {
		$aCategories = get_the_category($post->ID);
		?>
		<div itemscope itemtype="http://data-vocabulary.org/Breadcrumb" id="breadcrumbs">
			You are here: <a href="http://ericnagel.wpengine.com/" itemprop="url"><span itemprop="title">Eric Nagel</span></a> &gt;
			<span itemprop="child" itemscope itemtype="http://data-vocabulary.org/Breadcrumb">
				<a href="/category/<?= $aCategories[0]->slug ?>" itemprop="url"><span itemprop="title"><?= $aCategories[0]->name ?></span></a> &gt;
				<span itemprop="child" itemscope itemtype="http://data-vocabulary.org/Breadcrumb">
					<a href="<?php the_permalink(); ?>" itemprop="url"><span itemprop="title"><?php the_title() ?></span></a>
				</span>
			</span>
		</div>

		<?php
	} // ends if (is_single())
} // ends function breadcrumbs()

And then I add the hook to call the function:

add_action('thesis_hook_before_post', 'breadcrumbs');

Of course, you’ll want to take out the references to “Eric Nagel” and ericnagel.com. Also, my category slug is “category” but you may have changed yours. If so, make that change (line 10)

Read more about breadcrumbs, or test your code using Google’s Rich Snippets Testing Tool