# get_term()

URL: https://chugunov.pro/api-wordpress/functions/get_term/
Проверено на WordPress 6.9, обновлено 06.08.2026.
Источник: независимый русскоязычный справочник chugunov.pro. Не является официальной документацией WordPress.

Тип: функция.
Появился в версии: 2.3.0.

## Сигнатура

```php
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.

## Параметры

- `$term` `int|WP_Term|object` — обязательный. Если целое число, данные термина будут получены из базы данных или из кэша, если он доступен.
  
  Если объект stdClass (как в результатах запроса к базе данных), будут применены фильтры и возвращён объект WP_Term с данными $term.
  
  Если WP_Term, вернёт $term.
- `$taxonomy` `string` — необязательный, по умолчанию `''`. Имя таксономии, частью которой является $term.
- `$output` `string` — необязательный, по умолчанию `OBJECT`. Требуемый тип возврата. Один из OBJECT, ARRAY_A или ARRAY_N, что соответствует объекту WP_Term, ассоциативному массиву или числовому массиву соответственно.
- `$filter` `string` — необязательный, по умолчанию `'raw'`. Как очищать поля термина. Значение по умолчанию 'raw'.

## Возвращаемое значение

`WP_Term|array|WP_Error|null` — WP_Term $output WP_Error $taxonomy

## Исходный код

Файл: `wp-includes/taxonomy.php:977`

```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;

	$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.

## Связанные

Использует: `WP_Term::__construct`, `WP_Term::get_instance`, `WP_Term`, [`sanitize_term`](https://chugunov.pro/api-wordpress/functions/sanitize_term/), [`taxonomy_exists`](https://chugunov.pro/api-wordpress/functions/taxonomy_exists/), [`__`](https://chugunov.pro/api-wordpress/functions/__/), [`apply_filters`](https://chugunov.pro/api-wordpress/functions/apply_filters/), [`is_wp_error`](https://chugunov.pro/api-wordpress/functions/is_wp_error/), `WP_Error::__construct`.
Используется в: [`_block_bindings_term_data_get_value`](https://chugunov.pro/api-wordpress/functions/_block_bindings_term_data_get_value/), [`is_term_publicly_viewable`](https://chugunov.pro/api-wordpress/functions/is_term_publicly_viewable/), `WP_REST_Menu_Items_Controller::prepare_item_for_database`, `WP_REST_Menus_Controller::update_item`, `WP_REST_Term_Search_Handler::prepare_item`, `WP_REST_Term_Search_Handler::prepare_item_links`, [`rest_get_route_for_term`](https://chugunov.pro/api-wordpress/functions/rest_get_route_for_term/), [`get_object_subtype`](https://chugunov.pro/api-wordpress/functions/get_object_subtype/), `WP_Term_Query::populate_terms`, [`get_term_parents_list`](https://chugunov.pro/api-wordpress/functions/get_term_parents_list/), `WP_REST_Terms_Controller::get_term`, `WP_REST_Terms_Controller::prepare_links`, `WP_REST_Terms_Controller::prepare_item_for_database`, `WP_REST_Terms_Controller::create_item`, `WP_REST_Terms_Controller::update_item`, `WP_REST_Posts_Controller::check_assign_terms_permission`, `WP_Term_Query::get_terms`, `WP_Links_List_Table::column_categories`, [`export_wp`](https://chugunov.pro/api-wordpress/functions/export_wp/), [`get_category_to_edit`](https://chugunov.pro/api-wordpress/functions/get_category_to_edit/), [`wp_update_category`](https://chugunov.pro/api-wordpress/functions/wp_update_category/), [`wp_insert_category`](https://chugunov.pro/api-wordpress/functions/wp_insert_category/), [`wp_terms_checklist`](https://chugunov.pro/api-wordpress/functions/wp_terms_checklist/), [`wp_ajax_add_menu_item`](https://chugunov.pro/api-wordpress/functions/wp_ajax_add_menu_item/), [`wp_ajax_inline_save_tax`](https://chugunov.pro/api-wordpress/functions/wp_ajax_inline_save_tax/), [`_wp_ajax_add_hierarchical_term`](https://chugunov.pro/api-wordpress/functions/_wp_ajax_add_hierarchical_term/), [`wp_ajax_delete_tag`](https://chugunov.pro/api-wordpress/functions/wp_ajax_delete_tag/), [`wp_ajax_add_tag`](https://chugunov.pro/api-wordpress/functions/wp_ajax_add_tag/), `WP_Terms_List_Table::column_name`, `WP_Terms_List_Table::_rows`, `Walker_Nav_Menu_Edit::start_el`, [`_wp_ajax_menu_quick_search`](https://chugunov.pro/api-wordpress/functions/_wp_ajax_menu_quick_search/), [`map_meta_cap`](https://chugunov.pro/api-wordpress/functions/map_meta_cap/), `Walker_Category::start_el`, [`get_the_category_by_ID`](https://chugunov.pro/api-wordpress/functions/get_the_category_by_id/), `WP_Query::get_queried_object`, [`get_cat_name`](https://chugunov.pro/api-wordpress/functions/get_cat_name/), [`get_tag`](https://chugunov.pro/api-wordpress/functions/get_tag/), [`get_category`](https://chugunov.pro/api-wordpress/functions/get_category/), [`get_category_by_path`](https://chugunov.pro/api-wordpress/functions/get_category_by_path/).

Оригинал в официальной документации: https://developer.wordpress.org/reference/functions/get_term/
