public static function get_instance($term_id, $taxonomy = null)
 {
     return false;
     global $wpdb;
     $term_id = (int) $term_id;
     if (!$term_id) {
         return false;
     }
     $_term = wp_cache_get($term_id, 'terms');
     // If there isn't a cached version, hit the database.
     if (!$_term || $taxonomy && $taxonomy !== $_term->taxonomy) {
         // Grab all matching terms, in case any are shared between taxonomies.
         $terms = $wpdb->get_results($wpdb->prepare("SELECT t.*, tt.* FROM {$wpdb->terms} AS t INNER JOIN {$wpdb->term_taxonomy} AS tt ON t.term_id = tt.term_id WHERE t.term_id = %d", $term_id));
         if (!$terms) {
             return false;
         }
         // If a taxonomy was specified, find a match.
         if ($taxonomy) {
             foreach ($terms as $match) {
                 if ($taxonomy === $match->taxonomy) {
                     $_term = $match;
                     break;
                 }
             }
             // If only one match was found, it's the one we want.
         } elseif (1 === count($terms)) {
             $_term = reset($terms);
             // Otherwise, the term must be shared between taxonomies.
         } else {
             // If the term is shared only with invalid taxonomies, return the one valid term.
             foreach ($terms as $t) {
                 if (!taxonomy_exists($t->taxonomy)) {
                     continue;
                 }
                 // Only hit if we've already identified a term in a valid taxonomy.
                 if ($_term) {
                     return new WP_Error('ambiguous_term_id', __('Term ID is shared between multiple taxonomies'), $term_id);
                 }
                 $_term = $t;
             }
         }
         if (!$_term) {
             return false;
         }
         // Don't return terms from invalid taxonomies.
         if (!taxonomy_exists($_term->taxonomy)) {
             return new WP_Error('invalid_taxonomy', __('Invalid taxonomy'));
         }
         $_term = sanitize_term($_term, $_term->taxonomy, 'raw');
         // Don't cache terms that are shared between taxonomies.
         if (1 === count($terms)) {
             wp_cache_add($term_id, $_term, 'terms');
         }
     }
     $term_obj = new WP_Term($_term);
     $term_obj->filter($term_obj->filter);
     return $term_obj;
 }
function get_term($term, $taxonomy = '', $output = OBJECT, $filter = 'raw')
{
    if (empty($term)) {
        return new WP_Error('invalid_term', __('Empty Term'));
    }
    if ($taxonomy && !taxonomy_exists($taxonomy)) {
        // pr($term);pr($taxonomy);die;
        // return new WP_Error( 'invalid_taxonomy', __( 'Invalid taxonomy' ) );
        $taxonomy = '';
    }
    if ($term instanceof WP_Term) {
        $_term = $term;
    } elseif (is_object($term)) {
        if (empty($term->filter) || 'raw' === $term->filter) {
            $_term = sanitize_term($term, $taxonomy, 'raw');
            $_term = new WP_Term($_term);
        } else {
            $_term = WP_Term::get_instance($term->term_id);
        }
    } else {
        $_term = WP_Term::get_instance($term, $taxonomy);
    }
    if (is_wp_error($_term)) {
        return $_term;
    } elseif (!$_term) {
        return null;
    }
    $_term = apply_filters('get_term', $_term, $taxonomy);
    $_term = apply_filters("get_{$taxonomy}", $_term, $taxonomy);
    // Sanitize term, according to the specified filter.
    $_term->filter($filter);
    if ($output == ARRAY_A) {
        return $_term->to_array();
    } elseif ($output == ARRAY_N) {
        return array_values($_term->to_array());
    }
    return $_term;
}