get_term()
get_term( int|WP_Term|object $term, string $taxonomy = …
get_term( int|WP_Term|object $term, string $taxonomy = ”, string $output = OBJECT, string $filter = ‘raw’ )
按术语ID从数据库中获取所有术语数据。
Get all Term data from database by Term ID.
目录锚点:#说明#参数#返回#源码#笔记
说明(Description)
另见函数 sanitize_term_field()
参数(Parameters)
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| $term | (int | WP_Term | object) | 必需 | 如果是整数,则将从数据库或缓存(如果可用)中获取术语数据。如果stdClass对象(在数据库查询的结果中)将应用筛选器并返回与$Term数据对应的WP_Term对象。如果WP_Term,将返回$Term。 |
| $taxonomy | (string) | 可选 | $term所属的分类名称。 |
| $output | (string) | 可选 | 所需的返回类型。数组或数组中的一个,分别对应于WP术语对象、关联数组或数值数组。 |
| $filter | (string) | 可选 | 默认为raw或不应用WordPress定义的过滤器。 |
返回(Return)
(WP|Term|array|WP_Error|null)成功时由$output指定类型的对象。当$output为“OBJECT”时,将返回一个WP_Term实例。如果分类法不存在,则返回WP_错误。对于杂项失败返回null。
源码(Source)
/**
* 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.
*
* $term ID must be part of $taxonomy, to get from the database. Failure, might
* be able to be captured by the hooks. Failure would be the same value as $wpdb
* returns for the get_row method.
*
* There are two hooks, one is specifically for each term, named 'get_term', and
* the second is for the taxonomy name, 'term_$taxonomy'. Both hooks gets the
* term object, and the taxonomy name as parameters. Both hooks are expected to
* return a Term object.
*
* {@see 'get_term'} hook - Takes two parameters the term Object and the taxonomy name.
* Must return term object. Used in get_term() as a catch-all filter for every
* $term.
*
* {@see 'get_$taxonomy'} hook - Takes 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 'get_category' as the filter name. Useful
* for custom taxonomies or plugging into default taxonomies.
*
* @todo Better formatting for DocBlock
*
* @since 2.3.0
*
* @global wpdb $wpdb WordPress database abstraction object.
* @see sanitize_term_field() The $context param lists the available values for get_term_by() $filter param.
*
* @param int|object $term If integer, will get from database. If object will apply filters and return $term.
* @param string $taxonomy Taxonomy name that $term is part of.
* @param string $output Constant OBJECT, ARRAY_A, or ARRAY_N
* @param string $filter Optional, default is raw or no WordPress defined filter will applied.
* @return object|array|null|WP_Error Term Row from database. Will return null if $term is empty. If taxonomy does not
* exist then WP_Error will be returned.
*/
function get_term($term, $taxonomy, $output = OBJECT, $filter = 'raw') {
global $wpdb;
if ( empty( $term ) ) {
return new WP_Error( 'invalid_term', __( 'Empty Term' ) );
}
if ( ! taxonomy_exists( $taxonomy ) ) {
return new WP_Error( 'invalid_taxonomy', __( 'Invalid taxonomy' ) );
}
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 );
}
}
/**
* Filter a term.
*
* @since 2.3.0
*
* @param int|object $_term Term object or ID.
* @param string $taxonomy The taxonomy slug.
*/
$_term = apply_filters( 'get_term', $_term, $taxonomy );
/**
* Filter a taxonomy.
*
* The dynamic portion of the filter name, `$taxonomy`, refers
* to the taxonomy slug.
*
* @since 2.3.0
*
* @param int|object $_term Term object or ID.
* @param string $taxonomy The taxonomy slug.
*/
$_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;
}
}
| 更新版本 | 源码位置 | 使用 | 被使用 |
|---|---|---|---|
| 4.4.0 | wp-includes/taxonomy.php:819 | 53 | 10 |
笔记(Notes)
实例
get_term()使用WP对象缓存来存储以前获取的术语数据。这有助于避免从数据库中读取术语数据的后续数据I/O调用。例如:
$term = get_term( $term_id, $taxonomy );
Gives you term slug: e.g.: term-slug-example
$slug = $term->slug;
Gives you term name: e.g. Term Name Example
$name = $term->name;
Gives you term description: e.g. This is my new cool custom term.
$desc = $term->description;
$term = get_term( 1 , 'store' );
echo $term->name;
$term = get_term( 1 , ' store' );
echo $term->slug;
类别:WordPress 函数手册、
本文收集自互联网,转载请注明来源。
如有侵权,请联系 wper_net@163.com 删除。

还没有任何评论,赶紧来占个楼吧!