Index: post-template.php
===================================================================
--- post-template.php	(revision 31765)
+++ post-template.php	(working copy)
@@ -1807,3 +1807,89 @@
 	echo $rows;
 	echo "</ul>";
 }
+
+/** 
+ * Outputs breadcrumb navigation with user arguments for post type and other parameters
+ */
+
+function wp_breadcrumbs( $args = '' ) {
+	$defaults = array(
+		'post_type'		=> 'post', 
+		'home_label'	=> __( 'Home' ),
+		'item_sep'		=> ' &#8250; ',
+		'cat_sep'		=> ' &#124; ',
+		'show_title'	=> true,
+		'start_wrap'	=> '',
+		'end_wrap'		=> '',
+		);
+	$args = wp_parse_args ( $args, $defaults );
+	if ( 'post' == $args['post_type'] ) {
+		$home_url = home_url( '/' );
+		$cat_list = get_the_category_list();
+		if ( ! empty ( $cat_list) ) {
+			$post_category = get_the_category_list( $args['cat_sep'] ) . $args['item_sep'];
+		} else {
+			$post_category = null;
+		}
+
+		if ( $args['show_title'] == true ) {
+			$post_title = '<span itemprop="title">' . get_the_title() . '</span>';
+		} else {
+			$post_title = null;
+		}
+
+		echo $args['start_wrap'] . '<div itemscope itemtype="http://data-vocabulary.org/Breadcrumb">
+		<a href=" ' . $home_url . '" itemprop="url">' . $args['home_label'] . '</a> ' . $args['item_sep'] . $post_category  . $post_title . '</div>' . $args['end_wrap'];
+	}
+	elseif ( 'page' == $args['post_type'] ) {
+		global $post;
+		$home_url = home_url( '/' );
+		if ( $args['show_title'] == true ) {
+			$post_title = '<span itemprop="title">' . get_the_title() . '</span>';
+		} else {
+			$post_title = null;
+		}
+		if ( $post->post_parent == true ) {
+			$parent_title = get_the_title ($post->post_parent);
+			$parent_link = get_the_permalink ($post->post_parent);
+			$parent_output = '<a href="' . $parent_link . '">' . $parent_title . '</a>' . $args['item_sep'];
+		} else {
+			$parent_output = null;
+		}
+
+		echo $args['start_wrap'] . '<div class="nav codon-breadcrumbs">
+		<div itemscope itemtype="http://data-vocabulary.org/Breadcrumb">
+		<a href=" ' . $home_url . '" itemprop="url">' . $args['home_label'] . '</a>' . $args['item_sep'] . $parent_output . $post_title . '</div>' . $args['end_wrap'];
+	} else {
+		if ( post_type_exists ( $args['post_type'] ) == true ) {
+			global $post;
+			$home_url = home_url( '/' );
+			if ( $args['show_title'] == true ) {
+				$post_title = '<span itemprop="title">' . get_the_title() . '</span>';
+			} else {
+				$post_title = null;
+			}
+			if ( $post->post_parent == true ) {
+				$parent_title = get_the_title ($post->post_parent);
+				$parent_link = get_the_permalink ($post->post_parent);
+				$parent_output = '<a href="' . $parent_link . '">' . $parent_title . '</a>' . $args['item_sep'];
+				} else {
+				$parent_output = null;
+			}
+			if ( get_post_type_archive_link( $args['post_type'] ) == true ) {
+				$post_type_name = ucwords ( $args['post_type'] );
+				$archive_url = get_post_type_archive_link( $args['post_type'] );
+				$post_type_archive_link = '<a href="' . $archive_url . '">' . $post_type_name . '</a>' . $args['item_sep'];
+			} else {
+				$post_type_archive_link = null;
+			}
+
+			echo $args['start_wrap'] . '<div itemscope itemtype="http://data-vocabulary.org/Breadcrumb">
+			<a href=" ' . $home_url . '" itemprop="url">' . $args['home_label'] . '</a>' . $args['item_sep'] . $parent_output . $post_type_archive_link . $post_title . '</div>' . $args['end_wrap'];
+		} else {
+			// no output if post type is invalid
+			return;
+		}
+	}
+
+}
