get_term

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

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

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: