Definition:
function &get_term($term, $taxonomy, $output = OBJECT, $filter = 'raw') {}
Get all Term data from database by Term ID.
The usage of the get_term function is to apply filters to a term object. It is possible to get a term object from the database before applying the filters.
Parameters
- int|object $term: If integer, will get from database. If object will apply filters and return $term.
- string $taxonomy: Taxonomy name that $term is part of.
- string $output: Constant OBJECT, ARRAY_A, or ARRAY_N
- string $filter: Optional, default is raw or no WordPress defined filter will applied.
Return values
returns:Term Row from database. Will return null if $term is empty. If taxonomy does not exist then WP_Error will be returned.
Defined filters
- get_term
apply_filters('get_term', $_term, $taxonomy) - get_$taxonomy
apply_filters("get_$taxonomy", $_term, $taxonomy)
Source code
function &get_term($term, $taxonomy, $output = OBJECT, $filter = 'raw') {
global $wpdb;
$null = null;
if ( empty($term) ) {
$error = new WP_Error('invalid_term', __('Empty Term'));
return $error;
}
if ( ! taxonomy_exists($taxonomy) ) {
$error = new WP_Error('invalid_taxonomy', __('Invalid Taxonomy'));
return $error;
}
if ( is_object($term) && empty($term->filter) ) {
wp_cache_add($term->term_id, $term, $taxonomy);
$_term = $term;
} else {
if ( is_object($term) )
$term = $term->term_id;
if ( !$term = (int) $term )
return $null;
if ( ! $_term = wp_cache_get($term, $taxonomy) ) {
$_term = $wpdb->get_row( $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 tt.taxonomy = %s AND t.term_id = %d LIMIT 1", $taxonomy, $term) );
if ( ! $_term )
return $null;
wp_cache_add($term, $_term, $taxonomy);
}
}
$_term = apply_filters('get_term', $_term, $taxonomy);
$_term = apply_filters("get_$taxonomy", $_term, $taxonomy);
$_term = sanitize_term($_term, $taxonomy, $filter);
if ( $output == OBJECT ) {
return $_term;
} elseif ( $output == ARRAY_A ) {
$__term = get_object_vars($_term);
return $__term;
} elseif ( $output == ARRAY_N ) {
$__term = array_values(get_object_vars($_term));
return $__term;
} else {
return $_term;
}
}
1747

February 12, 2011 


No comments yet... Be the first to leave a reply!