函数原型
get_term( int|WP_Term|object $term, string $taxonomy = ”, string $output = OBJECT, string $filter = ‘raw’ ): WP_Term|array|WP_Error|null
函数描述
Gets all term data from database by term ID.
是否弃用
未弃用
函数参数
-
$term
int|WP_Term|object
Required - If integer, term data will be fetched from the database, or from the cache if available.
If stdClass object (as in the results of a database query), will apply filters and return aWP_Termobject with the$termdata.
IfWP_Term, will return$term. -
$taxonomy
string
Optional - Taxonomy name that
$termis 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 sanitize term fields. Default
'raw'.Default:
'raw'
函数返回值
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.
函数位置
File: wp-includes/taxonomy.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;
}
// Ensure for filters that this is not empty.
$taxonomy = $_term->taxonomy;
/**
* Filters a taxonomy term object.
*
* The {@see 'get_$taxonomy'} hook is also available for targeting 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( 'get_term', $_term, $taxonomy );
/**
* Filters a taxonomy term object.
*
* The dynamic portion of the hook name, `$taxonomy`, refers
* to the slug of the term's taxonomy.
*
* Possible hook names include:
*
* - `get_category`
* - `get_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( "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 ( ARRAY_A === $output ) {
return $_term->to_array();
} elseif ( ARRAY_N === $output ) {
return array_values( $_term->to_array() );
}
return $_term;
}
源码链接
变更日志
| Version | 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. |

