Definition:
function get_term_link( $term, $taxonomy = '') {}
Generates a permalink for a taxonomy term archive.
Parameters
- object|int|string $term
- string $taxonomy: (optional if $term is object)
Return values
returns:HTML link to taxonomy term archive on success, WP_Error if term does not exist.
Defined filters
- tag_link
apply_filters( 'tag_link', $termlink, $term->term_id )
- category_link
apply_filters( 'category_link', $termlink, $term->term_id )
- term_link
apply_filters('term_link', $termlink, $term, $taxonomy)
Source code
function get_term_link( $term, $taxonomy = '') { global $wp_rewrite; if ( !is_object($term) ) { if ( is_int($term) ) { $term = &get_term($term, $taxonomy); } else { $term = &get_term_by('slug', $term, $taxonomy); } } if ( !is_object($term) ) $term = new WP_Error('invalid_term', __('Empty Term')); if ( is_wp_error( $term ) ) return $term; $taxonomy = $term->taxonomy; $termlink = $wp_rewrite->get_extra_permastruct($taxonomy); $slug = $term->slug; $t = get_taxonomy($taxonomy); if ( empty($termlink) ) { if ( 'category' == $taxonomy ) $termlink = '?cat=' . $term->term_id; elseif ( $t->query_var ) $termlink = "?$t->query_var=$slug"; else $termlink = "?taxonomy=$taxonomy&term=$slug"; $termlink = home_url($termlink); } else { if ( $t->rewrite['hierarchical'] ) { $hierarchical_slugs = array(); $ancestors = get_ancestors($term->term_id, $taxonomy); foreach ( (array)$ancestors as $ancestor ) { $ancestor_term = get_term($ancestor, $taxonomy); $hierarchical_slugs[] = $ancestor_term->slug; } $hierarchical_slugs = array_reverse($hierarchical_slugs); $hierarchical_slugs[] = $slug; $termlink = str_replace("%$taxonomy%", implode('/', $hierarchical_slugs), $termlink); } else { $termlink = str_replace("%$taxonomy%", $slug, $termlink); } $termlink = home_url( user_trailingslashit($termlink, 'category') ); } // Back Compat filters. if ( 'post_tag' == $taxonomy ) $termlink = apply_filters( 'tag_link', $termlink, $term->term_id ); elseif ( 'category' == $taxonomy ) $termlink = apply_filters( 'category_link', $termlink, $term->term_id ); return apply_filters('term_link', $termlink, $term, $taxonomy); }
1761
No comments yet... Be the first to leave a reply!