diff --git a/wp-includes/category-template.php b/wp-includes/category-template.php index 69ec2ba782..349193e536 100644 --- a/wp-includes/category-template.php +++ b/wp-includes/category-template.php @@ -887,7 +887,7 @@ function get_the_term_list( $id = 0, $taxonomy, $before = '', $sep = '', $after return false; foreach ( $terms as $term ) { - $link = get_term_link( $term, $taxonomy ); + $link = get_term_link( $term->term_id, $taxonomy ); if ( is_wp_error( $link ) ) return $link; $term_links[] = ''; diff --git a/wp-includes/taxonomy.php b/wp-includes/taxonomy.php index 3120faa866..c00ef7c71e 100644 --- a/wp-includes/taxonomy.php +++ b/wp-includes/taxonomy.php @@ -2151,28 +2151,24 @@ function _update_post_term_count( $terms ) { * * @since 2.5.0 * - * @param object|int|string $term + * @param int $term_id The term id for which to get a link. * @param string $taxonomy * @return string HTML link to taxonomy term archive */ -function get_term_link( $term, $taxonomy ) { +function get_term_link( $term_id, $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_wp_error( $term ) ) - return $term; + $term_id = intval($term_id); // use legacy functions for core taxonomies until they are fully plugged in if ( $taxonomy == 'category' ) - return get_category_link((int) $term->term_id); + return get_category_link((int) $term_id); if ( $taxonomy == 'post_tag' ) - return get_tag_link((int) $term->term_id); + return get_tag_link((int) $term_id); + + $term = &get_term($term_id, $taxonomy); + + if ( is_wp_error( $term ) ) + return $term; $termlink = $wp_rewrite->get_extra_permastruct($taxonomy);