rest_prepare_taxonomyfilter-hookWP 4.7.0

Allows you to modify taxonomy data in a REST request immediately before it is returned.

Used during a taxonomy REST request.

Usage

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)
Response object (WP_REST_Response).
$item(WP_Taxonomy)
Taxonomy object (WP_Taxonomy).
$request(WP_REST_Request)
Request used to generate the response (WP_REST_Request).

Examples

#1 Add category taxonomy labels to the REST API response

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

/**
 * Adds the category taxonomy labels property to the REST API response.
 *
 * @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;
}

A request to domain/wp-json/wp/v2/taxonomies/category now returns this JSON:

{
	"name": "Categories",
	"slug": "category",
	"description": "",
	"types": [
		"post"
	],
	"hierarchical": true,
	"rest_base": "categories",
	"labels": {
		"name": "Categories",
		"singular_name": "Category",
		"search_items": "Search Categories",
		"popular_items": null,
		"all_items": "All Categories",
		"parent_item": "Parent Category",
		"parent_item_colon": "Parent Category:",
		"edit_item": "Edit Category",
		"view_item": "View Category",
		"update_item": "Update Category",
		"add_new_item": "Add New Category",
		"new_item_name": "New Category Name",
		"separate_items_with_commas": null,
		"add_or_remove_items": null,
		"choose_from_most_used": null,
		"not_found": "No categories found.",
		"no_terms": "No categories",
		"filter_by_item": "Filter by category",
		"items_list_navigation": "Categories list navigation",
		"items_list": "Categories list",
		"most_used": "Most Used",
		"back_to_items": "← Go to Categories",
		"menu_name": "Categories",
		"name_admin_bar": "category"
	},
	"_links": {
		"collection": [
			{
				"href": "https://wp-test.com/wp-json/wp/v2/taxonomies"
			}
		],
		"wp:items": [
			{
				"href": "https://wp-test.com/wp-json/wp/v2/categories"
			}
		],
		"curies": [
			{
				"name": "wp",
				"href": "https://api.w.org/{rel}",
				"templated": true
			}
		]
	}
}

Changelog

Since 4.7.0 Introduced.

Where the hook is called

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

Where the hook is used in WordPress

Usage not found.