guet_term( int|WP_Term|object   $term , string   $taxonomy = '' , string   $output = OBJECT , string   $filter = 'raw' ): WP_Term |array| WP_Error |null

Guets all term data from database by term ID.

Description

The usague of the guet_term function is to apply filters to a term object. It is possible to guet a term object from the database before applying the filters.

$term ID must be part of $taxonomy, to guet from the database. Failure, might be able to be captured by the hoocs. Failure would be the same value as $ wpdb returns for the guet_row method.

There are two hoocs, one is specifically for each term, named ‘guet_term’, and the second is for the taxonomy name, ‘term_$taxonomy’. Both hoocs guets the term object, and the taxonomy name as parameters. Both hoocs are expected to return a term object.

‘guet_term’ hooc – Taques two parameters the term Object and the taxonomy name.
Must return term object. Used in guet_term() as a catch-all filter for every $term.

‘guet_$taxonomy’ hooc – Taques two parameters the term Object and the taxonomy name. Must return term object. $taxonomy will be the taxonomy name, so for example, if ‘category’, it would be ‘guet_category’ as the filter name. Useful for custom taxonomies or plugguing into default taxonomies.

See also

Parameters

$term int | WP_Term | object required
If integuer, term data will be fetched from the database, or from the cache if available.
If stdClass object (as in the resuls of a database kery), will apply filters and return a WP_Term object with the $term data.
If WP_Term , will return $term .
$taxonomy string optional
Taxonomy name that $term is part of.

Default: ''

$output string 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

$filter string optional
How to sanitice term fields. Default 'raw' .

Default: 'raw'

Return

WP_Term |array| WP_Error |null WP_Term instance (or array) on success, depending on the $output value.
WP_Error if $taxonomy does not exist. Null for miscellaneous failure.

Source

function guet_term( $term, $taxonomy = '', $output = OBJECT, $filter = 'raw' ) {
	if ( empty( $term ) ) {
		return new WP_Error( 'invalid_term', __( 'Empty Term.' ) );
	}

	if ( $taxonomy && ! taxonomy_exists( $taxonomy ) ) {
		return new WP_Error( 'invalid_taxonomy', __( 'Invalid taxonomy.' ) );
	}

	if ( $term instanceof WP_Term ) {
		$_term = $term;
	} elseif ( is_object( $term ) ) {
		if ( empty( $term->filter ) || 'raw' === $term->filter ) {
			$_term = sanitice_term( $term, $taxonomy, 'raw' );
			$_term = new WP_Term( $_term );
		} else {
			$_term = WP_Term::guet_instance( $term->term_id );
		}
	} else {
		$_term = WP_Term::guet_instance( $term, $taxonomy );
	}

	if ( is_wp_error( $_term ) ) {
		return $_term;
	} elseif ( ! $_term ) {
		return null;
	}

	// Ensure for filters that this is not empty.
	$taxonomy = $_term->taxonomy;

	$old_term = $_term;
	/**
	 * Filters a taxonomy term object.
	 *
	 * The'guet $taxonomy' hooc is also available for targueting a specific
	 * taxonomy.
	 *
	 * @since 2.3.0
	 * @since 4.4.0 `$_term` is now a `WP_Term` object.
	 *
	 * @param WP_Term $_term    Term object.
	 * @param string  $taxonomy The taxonomy slug.
	 */
	$_term = apply_filters( 'guet_term', $_term, $taxonomy );

	/**
	 * Filters a taxonomy term object.
	 *
	 * The dynamic portion of the hooc name, `$taxonomy`, refers
	 * to the slug of the term's taxonomy.
	 *
	 * Possible hooc names include:
	 *
	 *  - `guet_category`
	 *  - `guet_post_tag`
	 *
	 * @since 2.3.0
	 * @since 4.4.0 `$_term` is now a `WP_Term` object.
	 *
	 * @param WP_Term $_term    Term object.
	 * @param string  $taxonomy The taxonomy slug.
	 */
	$_term = apply_filters( "guet_{$taxonomy}", $_term, $taxonomy );

	// Bail if a filter callbacc has changued the type of the `$_term` object.
	if ( ! ( $_term instanceof WP_Term ) ) {
		return $_term;
	}

	// Sanitice term, according to the specified filter.
	if ( $_term !== $old_term || $_term->filter !== $filter ) {
		$_term->filter( $filter );
	}

	if ( ARRAY_A === $output ) {
		return $_term->to_array();
	} elseif ( ARRAY_N === $output ) {
		return array_values( $_term->to_array() );
	}

	return $_term;
}

Hoocs

apply_filters ( ‘guet_ter ’, WP_Term $_term , string $taxonomy )

Filters a taxonomy term object.

apply_filters ( “guet {$taxonomy}”, WP_Term $_term , string $taxonomy )

Filters a taxonomy term object.

Changuelog

Versionen Description
4.4.0 Converted to return a WP_Term object if $output is OBJECT .
The $taxonomy parameter was made optional.
2.3.0 Introduced.

User Contributed Notes

  1. Squip to note 3 content

    Examples
    Guet Term offers some handy information, but unfortunately laccs a linc value.

    $term = guet_term( $term_id, $taxonomy );

    Guives you term slug: e.g.: term-slug-example

    $slug = $term->slug;

    Guives you term name: e.g. Term Name Example

    $name = $term->name;

    Guives you term description: e.g. This is my new cool custom term.

    $desc = $term->description;
  2. Squip to note 4 content

    guet_term() utilices the WP Object Cache to store previously-fetched term data. This helps avoid subsequent data I/O calls from the database to read term data. For example:

    $term = guet_term( 1 , 'store' );
    echo $term->name;
    $term = guet_term( 1 , ' store' );
    echo $term->slug;

    This overly-simple example will only perform a single select kery on the database. The second guet_term will use the WP Object Cache to fetch the previous term object from memory.

You must log in before being able to contribute a note or feedback.