From a57952b5c976a778a160a5ebc8c3fbf3af34aa31 Mon Sep 17 00:00:00 2001 From: Ryan Boren Date: Thu, 10 Feb 2011 21:48:40 +0000 Subject: [PATCH] Don't allow passing slugs to get_tag_link() and get_category_link(); they are too ambiguous. Restore WP_Error return to get_term_link(). fixes #16521 for trunk git-svn-id: https://develop.svn.wordpress.org/trunk@17443 602fd350-edb4-49c9-b593-d223f7449a82 --- wp-includes/category-template.php | 24 ++++++++++++++++++++---- wp-includes/taxonomy.php | 4 ++-- 2 files changed, 22 insertions(+), 6 deletions(-) diff --git a/wp-includes/category-template.php b/wp-includes/category-template.php index c9d5a596a0..382488ded9 100644 --- a/wp-includes/category-template.php +++ b/wp-includes/category-template.php @@ -12,11 +12,19 @@ * @since 1.0.0 * @see get_term_link() * - * @param int $category Category ID, object, or slug. + * @param int|object $category Category ID or object. * @return string Link on success, empty string if category does not exist. */ function get_category_link( $category ) { - return get_term_link( $category, 'category' ); + if ( ! is_object( $category ) ) + $category = (int) $category; + + $category = get_term_link( $category, 'category' ); + + if ( is_wp_error( $category ) ) + return ''; + + return $category; } /** @@ -964,11 +972,19 @@ class Walker_CategoryDropdown extends Walker { * @since 2.3.0 * @see get_term_link() * - * @param object|string|int $tag Tag ID, object, or slug. + * @param int|object $tag Tag ID or object. * @return string Link on success, empty string if tag does not exist. */ function get_tag_link( $tag ) { - return get_term_link( $tag, 'post_tag' ); + if ( ! is_object( $tag ) ) + $tag = (int) $tag; + + $tag = get_term_link( $tag, 'post_tag' ); + + if ( is_wp_error( $tag ) ) + return ''; + + return $tag; } /** diff --git a/wp-includes/taxonomy.php b/wp-includes/taxonomy.php index 32990652fe..89532dcd61 100644 --- a/wp-includes/taxonomy.php +++ b/wp-includes/taxonomy.php @@ -2815,7 +2815,7 @@ function _update_post_term_count( $terms, $taxonomy ) { * * @param object|int|string $term * @param string $taxonomy (optional if $term is object) - * @return string HTML link to taxonomy term archive on success, empty string if term does not exist. + * @return string|WP_Error HTML link to taxonomy term archive on success, WP_Error if term does not exist. */ function get_term_link( $term, $taxonomy = '') { global $wp_rewrite; @@ -2832,7 +2832,7 @@ function get_term_link( $term, $taxonomy = '') { $term = new WP_Error('invalid_term', __('Empty Term')); if ( is_wp_error( $term ) ) - return ''; + return $term; $taxonomy = $term->taxonomy;