Позволяет изменить данные термина в ответе REST API (непосредственно перед их возвратом).
Название фильтра формируется динамически на основании имени таксономии. Например:
- rest_prepare_category (для стандартных рубрик, таксономия category).
- rest_prepare_post_tag (для стандартных меток, таксономия post_tag).
Использование
add_filter( 'rest_prepare_(taxonomy)', 'filter_function_name_2559', 10, 3 ); function filter_function_name_2559( $response, $item, $request ){ // Изменяем что-либо... return $response; }
- $response(WP_REST_Response)
- Объект ответа.
- $item(WP_Term)
- Объект термина.
- $request(WP_REST_Request)
- Объект запроса, используемый для генерации ответа.
Примеры
#1 Добавим в название рубрик язык от Polylang при REST запросе
add_filter( 'rest_prepare_category', 'filter_rest_name_category', 10, 3 ); /** * Изменяет название рубрики при REST запросе в админке в виджете "Рубрики" и т.д. * * @param WP_REST_Response $response * @param WP_Term $item * @param WP_REST_Request $request * * @return WP_REST_Response */ function filter_rest_name_category( $response, $item, $request ) { // Если Polylang не активирован - ничего не делаем. if ( ! function_exists( 'pll_get_term_language' ) ) { return $response; } // Если это не создание новой записи или редактирование старой - ничего не делаем. $referer = $request->get_header( 'referer' ); $post_new = '/wp-admin/post-new.php'; $post_edit = '/wp-admin/post.php'; if ( strpos( $referer, $post_new ) === false && strpos( $referer, $post_edit ) === false ) { return $response; } // Получаем код языка (ru_RU, en_US и так далее). $lang = pll_get_term_language( $item->term_id, 'locale' ); // Добавляем к имени рубрики информацию о её языке. $response->data['name'] .= " ($lang)"; // Возвращаем модифицированный ответ. return $response; }
Список изменений
Где вызывается хук
rest_prepare_(taxonomy)
Где используется хук в ядре WordPress
Использование не найдено.