rest_prepare_taxonomy
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
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 );