Source
File: wp-includes/rest-api.php
function rest_get_route_for_term( $term ) {
$term = get_term( $term );
if ( ! $term instanceof WP_Term ) {
return '';
}
$taxonomy = get_taxonomy( $term->taxonomy );
if ( ! $taxonomy ) {
return '';
}
$controller = $taxonomy->get_rest_controller();
if ( ! $controller ) {
return '';
}
$route = '';
// The only controller that works is the Terms controller.
if ( 'WP_REST_Terms_Controller' === get_class( $controller ) ) {
$namespace = 'wp/v2';
$rest_base = ! empty( $taxonomy->rest_base ) ? $taxonomy->rest_base : $taxonomy->name;
$route = sprintf( '/%s/%s/%d', $namespace, $rest_base, $term->term_id );
}
/**
* Filters the REST API route for a term.
*
* @since 5.5.0
*
* @param string $route The route path.
* @param WP_Term $term The term object.
*/
return apply_filters( 'rest_route_for_term', $route, $term );
}