Taxonomy Terms in Breadcrumbs

I think, there are three different options: if the taxonomy isn’t hierarchical, if the taxonomy is hierarchical but only one term of taxonomy could be checked in posts, if the taxonomy is hierarchical and all terms from the tree could be checked in posts. Non-hierarchical taxonomy Such taxonomies works like post tags. The simpliest way […]

#taxonomies  /  April 12  /   3

I think, there are three different options:

  • if the taxonomy isn’t hierarchical,
  • if the taxonomy is hierarchical but only one term of taxonomy could be checked in posts,
  • if the taxonomy is hierarchical and all terms from the tree could be checked in posts.

Non-hierarchical taxonomy

Such taxonomies works like post tags. The simpliest way to print the term links is the_terms() function.

global $post; // this will help if you would use this code inside a custom function
$rd_post_id = $post->ID; // current post ID
$rd_taxonomy = 'region'; // taxonomy name
// the third argument is what you want to add before the navigation, you can leave it empty
// the fourth argument is term link separator , | / •
the_terms( $rd_post_id, $rd_taxonomy, 'Navigation: ', ' / ' );

Taxonomies with hierarchy

These taxonomies works like categories.

1. When only one term is checked

the_terms() functions will work great with this, so, look at the previous code example.

2. When the term tree is checked

This is how it looks:

taxonomy with hierarchy in wordpress admin

In that case the right term order is very important for us.

echo '<div id="kroshki">You are here:';
$rd_taxonomy = 'region'; // region taxonomy
$rd_terms = wp_get_post_terms( $post->ID, $rd_taxonomy, array( "fields" => "ids" ) ); // getting the term IDs
if( $rd_terms ) {
	$term_array = trim( implode( ',', (array) $rd_terms ), ' ,' );
	$neworderterms = get_terms($rd_taxonomy, 'orderby=none&include=' . $term_array );
	foreach( $neworderterms as $orderterm ) {
		echo '<a href="' . get_term_link( $orderterm ) . '">' . $orderterm->name . '</a> &raquo; ';
	}
}
the_title();
echo '</div>';

Only the best of WordPress

Subscribe to this weekly newsletter to receive the latest blog posts by email.I respect your privacy. Your email is safe with me.

Comments 3

Leave your question or feedback

phpjsHTMLCSSSQLCode
Please, enter a comment
Please, enter a name
Incorrect email