- Timestamp:
- 11/21/2016 05:40:46 AM (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/wp-includes/rest-api/fields/class-wp-rest-meta-fields.php
r39251 r39328 66 66 $response = array(); 67 67 68 foreach ( $fields as $name => $args ) { 69 $all_values = get_metadata( $this->get_meta_type(), $object_id, $name, false ); 68 foreach ( $fields as $meta_key => $args ) { 69 $name = $args['name']; 70 $all_values = get_metadata( $this->get_meta_type(), $object_id, $meta_key, false ); 70 71 if ( $args['single'] ) { 71 72 if ( empty( $all_values ) ) { … … 123 124 public function update_value( $request, $object_id ) { 124 125 $fields = $this->get_registered_fields(); 125 foreach ( $fields as $name => $args ) { 126 foreach ( $fields as $meta_key => $args ) { 127 $name = $args['name']; 126 128 if ( ! array_key_exists( $name, $request ) ) { 127 129 continue; … … 133 135 */ 134 136 if ( is_null( $request[ $name ] ) ) { 135 $result = $this->delete_meta_value( $object_id, $ name );137 $result = $this->delete_meta_value( $object_id, $meta_key, $name ); 136 138 if ( is_wp_error( $result ) ) { 137 139 return $result; … … 149 151 150 152 if ( $args['single'] ) { 151 $result = $this->update_meta_value( $object_id, $ name, $value );153 $result = $this->update_meta_value( $object_id, $meta_key, $name, $value ); 152 154 } else { 153 $result = $this->update_multi_meta_value( $object_id, $ name, $value );155 $result = $this->update_multi_meta_value( $object_id, $meta_key, $name, $value ); 154 156 } 155 157 … … 169 171 * 170 172 * @param int $object_id Object ID the field belongs to. 171 * @param string $name Key for the field. 173 * @param string $meta_key Key for the field. 174 * @param string $name Name for the field that is exposed in the REST API. 172 175 * @return bool|WP_Error True if meta field is deleted, WP_Error otherwise. 173 176 */ 174 protected function delete_meta_value( $object_id, $ name ) {177 protected function delete_meta_value( $object_id, $meta_key, $name ) { 175 178 $meta_type = $this->get_meta_type(); 176 if ( ! current_user_can( "delete_{$meta_type}_meta", $object_id, $ name) ) {179 if ( ! current_user_can( "delete_{$meta_type}_meta", $object_id, $meta_key ) ) { 177 180 return new WP_Error( 178 181 'rest_cannot_delete', … … 183 186 } 184 187 185 if ( ! delete_metadata( $meta_type, $object_id, wp_slash( $ name) ) ) {188 if ( ! delete_metadata( $meta_type, $object_id, wp_slash( $meta_key ) ) ) { 186 189 return new WP_Error( 187 190 'rest_meta_database_error', … … 203 206 * 204 207 * @param int $object_id Object ID to update. 205 * @param string $name Key for the custom field. 208 * @param string $meta_key Key for the custom field. 209 * @param string $name Name for the field that is exposed in the REST API. 206 210 * @param array $values List of values to update to. 207 211 * @return bool|WP_Error True if meta fields are updated, WP_Error otherwise. 208 212 */ 209 protected function update_multi_meta_value( $object_id, $ name, $values ) {213 protected function update_multi_meta_value( $object_id, $meta_key, $name, $values ) { 210 214 $meta_type = $this->get_meta_type(); 211 if ( ! current_user_can( "edit_{$meta_type}_meta", $object_id, $ name) ) {215 if ( ! current_user_can( "edit_{$meta_type}_meta", $object_id, $meta_key ) ) { 212 216 return new WP_Error( 213 217 'rest_cannot_update', … … 218 222 } 219 223 220 $current = get_metadata( $meta_type, $object_id, $ name, false );224 $current = get_metadata( $meta_type, $object_id, $meta_key, false ); 221 225 222 226 $to_remove = $current; … … 245 249 246 250 foreach ( $to_remove as $value ) { 247 if ( ! delete_metadata( $meta_type, $object_id, wp_slash( $ name), wp_slash( $value ) ) ) {251 if ( ! delete_metadata( $meta_type, $object_id, wp_slash( $meta_key ), wp_slash( $value ) ) ) { 248 252 return new WP_Error( 249 253 'rest_meta_database_error', … … 255 259 256 260 foreach ( $to_add as $value ) { 257 if ( ! add_metadata( $meta_type, $object_id, wp_slash( $ name), wp_slash( $value ) ) ) {261 if ( ! add_metadata( $meta_type, $object_id, wp_slash( $meta_key ), wp_slash( $value ) ) ) { 258 262 return new WP_Error( 259 263 'rest_meta_database_error', … … 274 278 * 275 279 * @param int $object_id Object ID to update. 276 * @param string $name Key for the custom field. 280 * @param string $meta_key Key for the custom field. 281 * @param string $name Name for the field that is exposed in the REST API. 277 282 * @param mixed $value Updated value. 278 283 * @return bool|WP_Error True if the meta field was updated, WP_Error otherwise. 279 284 */ 280 protected function update_meta_value( $object_id, $ name, $value ) {285 protected function update_meta_value( $object_id, $meta_key, $name, $value ) { 281 286 $meta_type = $this->get_meta_type(); 282 if ( ! current_user_can( "edit_{$meta_type}_meta", $object_id, $ name) ) {287 if ( ! current_user_can( "edit_{$meta_type}_meta", $object_id, $meta_key ) ) { 283 288 return new WP_Error( 284 289 'rest_cannot_update', … … 289 294 } 290 295 291 $meta_key = wp_slash( $ name);296 $meta_key = wp_slash( $meta_key ); 292 297 $meta_value = wp_slash( $value ); 293 298 … … 365 370 } 366 371 367 $registered[ $ rest_args['name']] = $rest_args;372 $registered[ $name ] = $rest_args; 368 373 } 369 374 … … 389 394 ); 390 395 391 foreach ( $fields as $ key => $args ) {392 $schema['properties'][ $ key] = $args['schema'];396 foreach ( $fields as $args ) { 397 $schema['properties'][ $args['name'] ] = $args['schema']; 393 398 } 394 399
Note: See TracChangeset
for help on using the changeset viewer.