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 291
return apply_filters( 'rest_prepare_taxonomy', $response, $taxonomy, $request );