From dad0455ef98375a15d292b945111ae410f84f50b Mon Sep 17 00:00:00 2001 From: Scott Taylor Date: Thu, 13 Mar 2014 04:03:06 +0000 Subject: [PATCH] Avoid a notice in `get_the_category_by_ID()` when `is_wp_error( $term )` is false but `$term->name` is not set. Clarify the `@return` value of `get_category()` and `get_tag()` which return the same possible types as `get_term()`, which they wrap. Props ericmann, SergeyBiryukov. Fixes #25429. git-svn-id: https://develop.svn.wordpress.org/trunk@27521 602fd350-edb4-49c9-b593-d223f7449a82 --- src/wp-includes/category-template.php | 4 +++- src/wp-includes/category.php | 5 +++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/wp-includes/category-template.php b/src/wp-includes/category-template.php index fa991bba41..1e545ee69a 100644 --- a/src/wp-includes/category-template.php +++ b/src/wp-includes/category-template.php @@ -136,9 +136,11 @@ function _usort_terms_by_ID( $a, $b ) { function get_the_category_by_ID( $cat_ID ) { $cat_ID = (int) $cat_ID; $category = get_term( $cat_ID, 'category' ); + if ( is_wp_error( $category ) ) return $category; - return $category->name; + + return ( $category ) ? $category->name : ''; } /** diff --git a/src/wp-includes/category.php b/src/wp-includes/category.php index 6bf7bac6c0..24cf6e8ad3 100644 --- a/src/wp-includes/category.php +++ b/src/wp-includes/category.php @@ -85,10 +85,11 @@ function get_categories( $args = '' ) { * @param int|object $category Category ID or Category row object * @param string $output Optional. Constant OBJECT, ARRAY_A, or ARRAY_N * @param string $filter Optional. Default is raw or no WordPress defined filter will applied. - * @return mixed Category data in type defined by $output parameter. + * @return object|array|WP_Error|null Category data in type defined by $output parameter. WP_Error if $category is empty, null if it does not exist. */ function get_category( $category, $output = OBJECT, $filter = 'raw' ) { $category = get_term( $category, 'category', $output, $filter ); + if ( is_wp_error( $category ) ) return $category; @@ -301,7 +302,7 @@ function get_tags( $args = '' ) { * @param int|object $tag * @param string $output Optional. Constant OBJECT, ARRAY_A, or ARRAY_N * @param string $filter Optional. Default is raw or no WordPress defined filter will applied. - * @return object|array Return type based on $output value. + * @return object|array|WP_Error|null Tag data in type defined by $output parameter. WP_Error if $tag is empty, null if it does not exist. */ function get_tag( $tag, $output = OBJECT, $filter = 'raw' ) { return get_term( $tag, 'post_tag', $output, $filter );