rest_prepare_taxonomy
Позволяет изменять данные таксономии при 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).
Примеры
#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 | Введена. |
Где вызывается хук
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 );