X-Git-Url: https://scripts.mit.edu/gitweb/autoinstalls/wordpress.git/blobdiff_plain/af50974463450c98503e763a7836a50e260461a9..e3ff8f35458a959c1879c0a4976701ed8dcfe651:/wp-includes/category.php diff --git a/wp-includes/category.php b/wp-includes/category.php index 6d2ad993..2ab54a5a 100644 --- a/wp-includes/category.php +++ b/wp-includes/category.php @@ -1,22 +1,26 @@ link", 2: "taxonomy => link_category" alternative */ + _deprecated_argument( __FUNCTION__, '3.0.0', + sprintf( __( '%1$s is deprecated. Use %2$s instead.' ), + 'type => link', + 'taxonomy => link_category' + ) + ); $taxonomy = $args['taxonomy'] = 'link_category'; } - $categories = (array) get_terms( $taxonomy, $args ); + $categories = get_terms( $taxonomy, $args ); - foreach ( array_keys( $categories ) as $k ) - _make_cat_compat( $categories[$k] ); + if ( is_wp_error( $categories ) ) { + $categories = array(); + } else { + $categories = (array) $categories; + foreach ( array_keys( $categories ) as $k ) { + _make_cat_compat( $categories[ $k ] ); + } + } return $categories; } @@ -61,14 +77,16 @@ function get_categories( $args = '' ) { * If you look at get_term(), then both types will be passed through several * filters and finally sanitized based on the $filter parameter value. * - * The category will converted to maintain backwards compatibility. + * The category will converted to maintain backward compatibility. * * @since 1.5.1 * * @param int|object $category Category ID or Category row object - * @param string $output Optional. Constant OBJECT, ARRAY_A, or ARRAY_N + * @param string $output Optional. The required return type. One of OBJECT, ARRAY_A, or ARRAY_N, which correspond to a + * WP_Term object, an associative array, or a numeric array, respectively. Default OBJECT. * @param string $filter Optional. Default is raw or no WordPress defined filter will applied. - * @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. + * @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 ); @@ -96,9 +114,10 @@ function get_category( $category, $output = OBJECT, $filter = 'raw' ) { * @since 2.1.0 * * @param string $category_path URL containing category slugs. - * @param bool $full_match Optional. Whether full path should be matched. - * @param string $output Optional. Constant OBJECT, ARRAY_A, or ARRAY_N - * @return null|object|array Null on failure. Type is based on $output value. + * @param bool $full_match Optional. Whether full path should be matched. + * @param string $output Optional. The required return type. One of OBJECT, ARRAY_A, or ARRAY_N, which correspond to + * a WP_Term object, an associative array, or a numeric array, respectively. Default OBJECT. + * @return WP_Term|array|WP_Error|null Type is based on $output value. */ function get_category_by_path( $category_path, $full_match = true, $output = OBJECT ) { $category_path = rawurlencode( urldecode( $category_path ) ); @@ -108,21 +127,23 @@ function get_category_by_path( $category_path, $full_match = true, $output = OBJ $leaf_path = sanitize_title( basename( $category_paths ) ); $category_paths = explode( '/', $category_paths ); $full_path = ''; - foreach ( (array) $category_paths as $pathdir ) + foreach ( (array) $category_paths as $pathdir ) { $full_path .= ( $pathdir != '' ? '/' : '' ) . sanitize_title( $pathdir ); - + } $categories = get_terms( 'category', array('get' => 'all', 'slug' => $leaf_path) ); - if ( empty( $categories ) ) - return null; + if ( empty( $categories ) ) { + return; + } foreach ( $categories as $category ) { $path = '/' . $leaf_path; $curcategory = $category; while ( ( $curcategory->parent != 0 ) && ( $curcategory->parent != $curcategory->term_id ) ) { $curcategory = get_term( $curcategory->parent, 'category' ); - if ( is_wp_error( $curcategory ) ) + if ( is_wp_error( $curcategory ) ) { return $curcategory; + } $path = '/' . $curcategory->slug . $path; } @@ -139,8 +160,6 @@ function get_category_by_path( $category_path, $full_match = true, $output = OBJ _make_cat_compat( $category ); return $category; } - - return null; } /** @@ -254,7 +273,7 @@ function get_tags( $args = '' ) { } /** - * Filter the array of term objects returned for the 'post_tag' taxonomy. + * Filters the array of term objects returned for the 'post_tag' taxonomy. * * @since 2.3.0 * @@ -279,10 +298,11 @@ function get_tags( $args = '' ) { * * @since 2.3.0 * - * @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|WP_Error|null Tag data in type defined by $output parameter. WP_Error if $tag is empty, null if it does not exist. + * @param int|WP_Term|object $tag A tag ID or object. + * @param string $output Optional. The required return type. One of OBJECT, ARRAY_A, or ARRAY_N, which correspond to + * a WP_Term object, an associative array, or a numeric array, respectively. Default OBJECT. + * @param string $filter Optional. Default is raw or no WordPress defined filter will applied. + * @return WP_Term|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 ); @@ -316,18 +336,19 @@ function clean_category_cache( $id ) { * pass to it. This is one of the features with using pass by reference in PHP. * * @since 2.3.0 + * @since 4.4.0 The `$category` parameter now also accepts a WP_Term object. * @access private * - * @param array|object $category Category Row object or array + * @param array|object|WP_Term $category Category Row object or array */ function _make_cat_compat( &$category ) { - if ( is_object( $category ) ) { - $category->cat_ID = &$category->term_id; - $category->category_count = &$category->count; - $category->category_description = &$category->description; - $category->cat_name = &$category->name; - $category->category_nicename = &$category->slug; - $category->category_parent = &$category->parent; + if ( is_object( $category ) && ! is_wp_error( $category ) ) { + $category->cat_ID = $category->term_id; + $category->category_count = $category->count; + $category->category_description = $category->description; + $category->cat_name = $category->name; + $category->category_nicename = $category->slug; + $category->category_parent = $category->parent; } elseif ( is_array( $category ) && isset( $category['term_id'] ) ) { $category['cat_ID'] = &$category['term_id']; $category['category_count'] = &$category['count'];