按术语ID从数据库中获取所有术语数据。

原型

get_term( int|WP_Term|object $term, string $taxonomy = '', string $output = OBJECT, string $filter = 'raw' )

描述

get_term函数的用法是将过滤器应用于term对象。在应用过滤器之前,可以从数据库中获取术语对象。

参考:

  • sanitize_term_field()
  • get_term_by()

参数

$term (int|WP_Term|object) (Required) 如果是整数,则将从数据库中获取术语数据,如果可用,则从缓存中获取。如果stdClass对象(如在数据库查询的结果中),将应用过滤器并返回对应于$ term数据的WP_Term对象。如果WP_Term,将返回$ term。

$taxonomy (string) (Optional)  $ term是其中一部分的分类名称。

$output (string) (Optional)  所需的返回类型。 OBJECT,ARRAY_A或ARRAY_N之一,分别对应于WP_Term对象,关联数组或数值数组。

$filter (string) (Optional)  默认为raw或不应用WordPress定义的过滤器。

返回值

(array|WP_Term|WP_Error|null)  指定类型的对象

源文件

路径:wp-includes/taxonomy.php

<?php
...
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 ) ) {
		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 = 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;
	}
	/**
	 * Filters a term.
	 *
	 * @since 2.3.0
	 * @since 4.4.0 `$_term` can now also be a WP_Term object.
	 *
	 * @param int|WP_Term $_term    Term object or ID.
	 * @param string      $taxonomy The taxonomy slug.
	 */
	$_term = apply_filters( 'get_term', $_term, $taxonomy );
	/**
	 * Filters a taxonomy.
	 *
	 * The dynamic portion of the filter name, `$taxonomy`, refers
	 * to the taxonomy slug.
	 *
	 * @since 2.3.0
	 * @since 4.4.0 `$_term` can now also be a WP_Term object.
	 *
	 * @param int|WP_Term $_term    Term object or ID.
	 * @param string      $taxonomy The taxonomy slug.
	 */
	$_term = apply_filters( "get_{$taxonomy}", $_term, $taxonomy );
	// Bail if a filter callback has changed the type of the `$_term` object.
	if ( ! ( $_term instanceof WP_Term ) ) {
		return $_term;
	}
	// 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;
}
...
?>

其他

英文文档:https://developer.wordpress.org/reference/functions/get_term/