-function get_category_by_path($category_path, $full_match = true, $output = OBJECT) {
- global $wpdb;
- $category_path = rawurlencode(urldecode($category_path));
- $category_path = str_replace('%2F', '/', $category_path);
- $category_path = str_replace('%20', ' ', $category_path);
- $category_paths = '/' . trim($category_path, '/');
- $leaf_path = sanitize_title(basename($category_paths));
- $category_paths = explode('/', $category_paths);
+/**
+ * Retrieve category based on URL containing the category slug.
+ *
+ * Breaks the $category_path parameter up to get the category slug.
+ *
+ * Tries to find the child path and will return it. If it doesn't find a
+ * match, then it will return the first category matching slug, if $full_match,
+ * is set to false. If it does not, then it will return null.
+ *
+ * It is also possible that it will return a WP_Error object on failure. Check
+ * for it when using this function.
+ *
+ * @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.
+ */
+function get_category_by_path( $category_path, $full_match = true, $output = OBJECT ) {
+ $category_path = rawurlencode( urldecode( $category_path ) );
+ $category_path = str_replace( '%2F', '/', $category_path );
+ $category_path = str_replace( '%20', ' ', $category_path );
+ $category_paths = '/' . trim( $category_path, '/' );
+ $leaf_path = sanitize_title( basename( $category_paths ) );
+ $category_paths = explode( '/', $category_paths );