get_term()
Проверено на WordPress 6.9, обновлено Источник: WordPress Developer Resources.
Сигнатура
get_term( int|WP_Term|object $term, string $taxonomy = '', string $output = OBJECT, string $filter = 'raw' ): WP_Term|array|WP_Error|null
Описание
Функция get_term применяет фильтры к объекту термина. Объект термина можно получить из базы данных до применения фильтров.
ID $term должен быть частью $taxonomy, чтобы получить его из базы данных. Неудачу можно отследить через хуки. Значение при неудаче будет таким же, какое возвращает $wpdb для метода get_row.
Есть два хука: один — конкретно для каждого термина, с именем «get_term», а второй — для имени таксономии, «term_$taxonomy». Оба хука получают объект термина и имя таксономии в качестве параметров. Оба хука должны возвращать объект термина.
Хук «get_term» — принимает два параметра: объект термина и имя таксономии.
Должен возвращать объект термина. Используется в get_term() как универсальный фильтр для каждого $term.
Хук «get_$taxonomy» — принимает два параметра: объект термина и имя таксономии. Должен возвращать объект термина. $taxonomy будет именем таксономии, так что, например, для «category» именем фильтра будет «get_category». Полезно для пользовательских таксономий или для подключения к стандартным таксономиям.
См. alsosanitize_term_field(): параметр $context перечисляет доступные значения для параметра get_term_by() $filter.
Оригинал (английский)
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.
‘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.
‘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.
- sanitize_term_field(): The $context param lists the available values for get_term_by() $filter param.
Параметры
$term
int|WP_Term|object
обязательный
$taxonomy
string
необязательный
= ''
$output
string
необязательный
= OBJECT
$filter
string
необязательный
= 'raw'
Возвращаемое значение
WP_Term|array|WP_Error|null
Исходный код
wp-includes/taxonomy.php:977
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;
$old_term = $_term;
/**
* Filters a taxonomy term object.
*
* The '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.
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;
}
История изменений
| Версия | Описание |
|---|---|
| 4.4.0 | Converted to return a WP_Term object if $output is OBJECT. The $taxonomy parameter was made optional. |
| 2.3.0 | Introduced. |

