From 94b8a122c418c719c56a36efe6f02f34399ad024 Mon Sep 17 00:00:00 2001 From: "K. Adam White" Date: Thu, 15 Aug 2019 20:03:18 +0000 Subject: [PATCH] REST API: Clarify arguments passed to rest route get & update callbacks. Update doc block argument definitions to clarify that the REST API always passes an array to the `get_callback` and always passes an entity object to the `update_callback`. Props TimothyBlynJacobs, salzano. Fixes #44432. git-svn-id: https://develop.svn.wordpress.org/trunk@45810 602fd350-edb4-49c9-b593-d223f7449a82 --- src/wp-includes/rest-api.php | 16 ++++++++-------- .../endpoints/class-wp-rest-controller.php | 12 ++++++------ 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/src/wp-includes/rest-api.php b/src/wp-includes/rest-api.php index 3054d61ea4..251c677998 100644 --- a/src/wp-includes/rest-api.php +++ b/src/wp-includes/rest-api.php @@ -102,14 +102,14 @@ function register_rest_route( $namespace, $route, $args = array(), $override = f * @param array $args { * Optional. An array of arguments used to handle the registered field. * - * @type string|array|null $get_callback Optional. The callback function used to retrieve the field - * value. Default is 'null', the field will not be returned in - * the response. - * @type string|array|null $update_callback Optional. The callback function used to set and update the - * field value. Default is 'null', the value cannot be set or - * updated. - * @type string|array|null $schema Optional. The callback function used to create the schema for - * this field. Default is 'null', no schema entry will be returned. + * @type callable|null $get_callback Optional. The callback function used to retrieve the field value. Default is + * 'null', the field will not be returned in the response. The function will + * be passed the prepared object data. + * @type callable|null $update_callback Optional. The callback function used to set and update the field value. Default + * is 'null', the value cannot be set or updated. The function will be passed + * the model object, like WP_Post. + * @type array|null $schema Optional. The callback function used to create the schema for this field. + * Default is 'null', no schema entry will be returned. * } */ function register_rest_field( $object_type, $attribute, $args = array() ) { diff --git a/src/wp-includes/rest-api/endpoints/class-wp-rest-controller.php b/src/wp-includes/rest-api/endpoints/class-wp-rest-controller.php index cd976f3357..e1ca0af6ce 100644 --- a/src/wp-includes/rest-api/endpoints/class-wp-rest-controller.php +++ b/src/wp-includes/rest-api/endpoints/class-wp-rest-controller.php @@ -372,11 +372,11 @@ abstract class WP_REST_Controller { * * @since 4.7.0 * - * @param array $object Data object. - * @param WP_REST_Request $request Full details about the request. + * @param array $prepared Prepared response array. + * @param WP_REST_Request $request Full details about the request. * @return array Modified data object with additional fields. */ - protected function add_additional_fields_to_object( $object, $request ) { + protected function add_additional_fields_to_object( $prepared, $request ) { $additional_fields = $this->get_additional_fields(); @@ -392,10 +392,10 @@ abstract class WP_REST_Controller { continue; } - $object[ $field_name ] = call_user_func( $field_options['get_callback'], $object, $field_name, $request, $this->get_object_type() ); + $prepared[ $field_name ] = call_user_func( $field_options['get_callback'], $prepared, $field_name, $request, $this->get_object_type() ); } - return $object; + return $prepared; } /** @@ -403,7 +403,7 @@ abstract class WP_REST_Controller { * * @since 4.7.0 * - * @param array $object Data Object. + * @param object $object Data model like WP_Term or WP_Post. * @param WP_REST_Request $request Full details about the request. * @return bool|WP_Error True on success, WP_Error object if a field cannot be updated. */