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 删除。
还没有任何评论,赶紧来占个楼吧!