--- a/wp/wp-includes/rest-api/endpoints/class-wp-rest-terms-controller.php Wed Sep 21 18:19:35 2022 +0200
+++ b/wp/wp-includes/rest-api/endpoints/class-wp-rest-terms-controller.php Tue Sep 27 16:37:53 2022 +0200
@@ -49,6 +49,14 @@
protected $total_terms;
/**
+ * Whether the controller supports batching.
+ *
+ * @since 5.9.0
+ * @var array
+ */
+ protected $allow_batch = array( 'v1' => true );
+
+ /**
* Constructor.
*
* @since 4.7.0
@@ -57,9 +65,9 @@
*/
public function __construct( $taxonomy ) {
$this->taxonomy = $taxonomy;
- $this->namespace = 'wp/v2';
$tax_obj = get_taxonomy( $taxonomy );
$this->rest_base = ! empty( $tax_obj->rest_base ) ? $tax_obj->rest_base : $tax_obj->name;
+ $this->namespace = ! empty( $tax_obj->rest_namespace ) ? $tax_obj->rest_namespace : 'wp/v2';
$this->meta = new WP_REST_Term_Meta_Fields( $taxonomy );
}
@@ -89,7 +97,8 @@
'permission_callback' => array( $this, 'create_item_permissions_check' ),
'args' => $this->get_endpoint_args_for_item_schema( WP_REST_Server::CREATABLE ),
),
- 'schema' => array( $this, 'get_public_item_schema' ),
+ 'allow_batch' => $this->allow_batch,
+ 'schema' => array( $this, 'get_public_item_schema' ),
)
);
@@ -97,7 +106,7 @@
$this->namespace,
'/' . $this->rest_base . '/(?P<id>[\d]+)',
array(
- 'args' => array(
+ 'args' => array(
'id' => array(
'description' => __( 'Unique identifier for the term.' ),
'type' => 'integer',
@@ -129,7 +138,8 @@
),
),
),
- 'schema' => array( $this, 'get_public_item_schema' ),
+ 'allow_batch' => $this->allow_batch,
+ 'schema' => array( $this, 'get_public_item_schema' ),
)
);
}
@@ -914,15 +924,14 @@
$post_type_links = array();
foreach ( $taxonomy_obj->object_type as $type ) {
- $post_type_object = get_post_type_object( $type );
+ $rest_path = rest_get_route_for_post_type_items( $type );
- if ( empty( $post_type_object->show_in_rest ) ) {
+ if ( empty( $rest_path ) ) {
continue;
}
- $rest_base = ! empty( $post_type_object->rest_base ) ? $post_type_object->rest_base : $post_type_object->name;
$post_type_links[] = array(
- 'href' => add_query_arg( $this->rest_base, $term->term_id, rest_url( sprintf( 'wp/v2/%s', $rest_base ) ) ),
+ 'href' => add_query_arg( $this->rest_base, $term->term_id, rest_url( $rest_path ) ),
);
}