rest_prepare_taxonomyхук-фильтрWP 4.7.0

Позволяет изменять данные таксономии при REST запросе непосредственно перед их возвращением.

Используется при REST запросе таксономии.

Использование

add_filter( 'rest_prepare_taxonomy', 'wp_kama_rest_prepare_taxonomy_filter', 10, 3 );

/**
 * Function for `rest_prepare_taxonomy` filter-hook.
 * 
 * @param WP_REST_Response $response The response object.
 * @param WP_Taxonomy      $item     The original taxonomy object.
 * @param WP_REST_Request  $request  Request used to generate the response.
 *
 * @return WP_REST_Response
 */
function wp_kama_rest_prepare_taxonomy_filter( $response, $item, $request ){

	// filter...
	return $response;
}
$response(WP_REST_Response)
Объект ответа (WP_REST_Response).
$item(WP_Taxonomy)
Объект таксономии (WP_Taxonomy).
$request(WP_REST_Request)
Запрос, используемый для генерации ответа (WP_REST_Request).

Примеры

0

#1 Добавим в ответ REST API свойство labels таксономии category

add_filter( 'rest_prepare_taxonomy', 'filter_rest_prepare_taxonomy', 10, 3 );

/**
 * Добавляет в ответ REST API свойство labels таксономии category.
 *
 * @param WP_REST_Response $response The response object.
 * @param WP_Taxonomy      $taxonomy The original taxonomy object.
 * @param WP_REST_Request  $request  Request used to generate the response.
 *
 * @return WP_REST_Response
 */
function filter_rest_prepare_taxonomy( $response, $taxonomy, $request ) {
	if ( 'category' === $taxonomy->name ) {
		$response->data['labels'] = $taxonomy->labels;
	}

	return $response;
}

Теперь при обращение по адресу домен/wp-json/wp/v2/taxonomies/category получим json:

{
	"name": "Рубрики",
	"slug": "category",
	"description": "",
	"types": [
		"post"
	],
	"hierarchical": true,
	"rest_base": "categories",
	"labels": {
		"name": "Рубрики",
		"singular_name": "Рубрика",
		"search_items": "Поиск рубрик",
		"popular_items": null,
		"all_items": "Все рубрики",
		"parent_item": "Родительская рубрика",
		"parent_item_colon": "Родительская рубрика:",
		"edit_item": "Изменить рубрику",
		"view_item": "Просмотреть рубрику",
		"update_item": "Обновить рубрику",
		"add_new_item": "Добавить новую рубрику",
		"new_item_name": "Название новой рубрики",
		"separate_items_with_commas": null,
		"add_or_remove_items": null,
		"choose_from_most_used": null,
		"not_found": "Рубрик не найдено.",
		"no_terms": "Рубрик нет",
		"filter_by_item": "Фильтр по рубрике",
		"items_list_navigation": "Навигация по списку рубрик",
		"items_list": "Список рубрик",
		"most_used": "Часто используемые",
		"back_to_items": "← Перейти к рубрикам",
		"menu_name": "Рубрики",
		"name_admin_bar": "category"
	},
	"_links": {
		"collection": [
			{
				"href": "https://wp-test.ru/wp-json/wp/v2/taxonomies"
			}
		],
		"wp:items": [
			{
				"href": "https://wp-test.ru/wp-json/wp/v2/categories"
			}
		],
		"curies": [
			{
				"name": "wp",
				"href": "https://api.w.org/{rel}",
				"templated": true
			}
		]
	}
}

Список изменений

С версии 4.7.0 Введена.

Где вызывается хук

WP_REST_Taxonomies_Controller::prepare_item_for_response()
rest_prepare_taxonomy
wp-includes/rest-api/endpoints/class-wp-rest-taxonomies-controller.php 291
return apply_filters( 'rest_prepare_taxonomy', $response, $taxonomy, $request );

Где используется хук в WordPress

Использование не найдено.