--- a/wp/wp-includes/rest-api/endpoints/class-wp-rest-menus-controller.php Thu Sep 29 08:06:27 2022 +0200
+++ b/wp/wp-includes/rest-api/endpoints/class-wp-rest-menus-controller.php Fri Sep 05 18:40:08 2025 +0200
@@ -40,7 +40,7 @@
* @since 5.9.0
*
* @param WP_REST_Request $request Full details about the request.
- * @return bool|WP_Error True if the request has read access for the item, otherwise false or WP_Error object.
+ * @return true|WP_Error True if the request has read access for the item, otherwise WP_Error object.
*/
public function get_item_permissions_check( $request ) {
$has_permission = parent::get_item_permissions_check( $request );
@@ -81,7 +81,7 @@
* @since 5.9.0
*
* @param WP_REST_Request $request Full details about the request.
- * @return bool|WP_Error Whether the current user has permission.
+ * @return true|WP_Error True if the current user has permission, WP_Error object otherwise.
*/
protected function check_has_read_only_access( $request ) {
if ( current_user_can( 'edit_theme_options' ) ) {
@@ -134,7 +134,10 @@
$data = $this->filter_response_by_context( $data, $context );
$response = rest_ensure_response( $data );
- $response->add_links( $this->prepare_links( $term ) );
+
+ if ( rest_is_field_included( '_links', $fields ) || rest_is_field_included( '_embedded', $fields ) ) {
+ $response->add_links( $this->prepare_links( $term ) );
+ }
/** This action is documented in wp-includes/rest-api/endpoints/class-wp-rest-terms-controller.php */
return apply_filters( "rest_prepare_{$this->taxonomy}", $response, $term, $request );
@@ -520,6 +523,10 @@
* @return array Item schema data.
*/
public function get_item_schema() {
+ if ( $this->schema ) {
+ return $this->add_additional_fields_schema( $this->schema );
+ }
+
$schema = parent::get_item_schema();
unset( $schema['properties']['count'], $schema['properties']['link'], $schema['properties']['taxonomy'] );
@@ -531,7 +538,7 @@
),
'context' => array( 'view', 'edit' ),
'arg_options' => array(
- 'validate_callback' => function ( $locations, $request, $param ) {
+ 'validate_callback' => static function ( $locations, $request, $param ) {
$valid = rest_validate_request_arg( $locations, $request, $param );
if ( true !== $valid ) {
@@ -563,6 +570,8 @@
'type' => 'boolean',
);
- return $schema;
+ $this->schema = $schema;
+
+ return $this->add_additional_fields_schema( $this->schema );
}
}