Skip to content

Instantly share code, notes, and snippets.

@anunay
Created September 28, 2014 11:15
Show Gist options
  • Save anunay/ff094b76612b7b58bf89 to your computer and use it in GitHub Desktop.
Save anunay/ff094b76612b7b58bf89 to your computer and use it in GitHub Desktop.
terms breadcrumbs
<?php
/**
* Get the Term List Breadcrumbs
* Same as get_the_term_list() but outputs a terms parents as part of the link.
* Useful when you have many subcategories all with the same name.
*/
function get_the_term_list_breadcrumbs( $id = 0, $taxonomy, $before = '', $sep = '', $after = '', $breadcrumb_sep = ' &rarr; ' ) {
$terms = get_the_terms( $id, $taxonomy );
if ( is_wp_error( $terms ) )
return $terms;
if ( empty( $terms ) )
return false;
foreach ( $terms as $term ) {
$link = get_term_link( $term, $taxonomy );
if ( is_wp_error( $link ) )
return $link;
// Find parents
$names = array();
$ancestors = get_ancestors( $term->term_id, $taxonomy );
if ( count( $ancestors ) > 0 ) {
foreach ( $ancestors as $anc ) {
$t = get_term( $anc, $taxonomy );
$names[] = $t->name;
}
}
$names[] = $term->name;
$link_text = implode( $breadcrumb_sep, $names );
$term_links[] = '<a href="' . $link . '" rel="tag">' . $link_text . '</a>';
}
$term_links = apply_filters( "term_links-$taxonomy", $term_links );
return $before . join( $sep, $term_links ) . $after;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment